慕粉1935448701
2017-01-08 14:58
为什么写成firstChild是无定义而lastChild就能输出?应该第一个无定义最后一个也是一样的才对啊?
请仔细看慕课的代码,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);
我也是刚刚悟出来的,一起学习,谢谢。
我估计是浏览器的规则吧,相当于你绕了一圈又指代自己,这种做法在编程里很容易报错的。
这个不太清楚,有大神回答没?不过使用lastElementChild和firstElementChild就没有这个问题了
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题