为了账号安全,请及时绑定邮箱和手机立即绑定

为什么写成firstChild是无定义而lastChild就能输出?应该第一个无定义最后一个也是一样的才对啊?

为什么写成firstChild是无定义而lastChild就能输出?应该第一个无定义最后一个也是一样的才对啊?

正在回答

3 回答

请仔细看慕课的代码,firstChild获取的是父元素之后的空白节点,由于无内容,所以会输出undefined,而最后一个子元素的结束处是</li></ul>,此处无断开,所以lastChild就是我们要获取的内容,假如把最后一个</li>与</ul>断开换行,lastChild的获取结果也是undefined。

假如最后一个</li>与</ul>断开换行,要获取作业所说的效果,则应该是

var mylist = document.getElementById("tcon");

var  a=mylist.parentNode.parentNode.parentNode.childNodes;

document.write(a[a.length-2].innerHTML);

我也是刚刚悟出来的,一起学习,谢谢。

0 回复 有任何疑惑可以回复我~

我估计是浏览器的规则吧,相当于你绕了一圈又指代自己,这种做法在编程里很容易报错的。

0 回复 有任何疑惑可以回复我~

这个不太清楚,有大神回答没?不过使用lastElementChild和firstElementChild就没有这个问题了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么写成firstChild是无定义而lastChild就能输出?应该第一个无定义最后一个也是一样的才对啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信