DOM编程艺术第2版 第129页对于图中这段html代码:<abbr title="Document Object Model"><em>DOM</em></abbr>使用firstChild属性和lastChild属性取得的不都是em元素节点吗?为什么我觉得二者这里效果没有差别呢?2. DOM编程艺术 第140页书中说由于lastChild得到的节点可能不是一个元素节点, 为了实现得到最后一个元素节点lastElementChild的效果,使用了下面的代码:var quoteElements = parentNode.getElementsByTagName('*');
var elem = quoteElements[quoteElements.length - 1];得到的 elem 就是父节点的最后一个元素节点。 可是我觉的无论lastChild 还是 lastElementChild 都指的是父节点的儿子节点吧,使用getElementsByTagName('*')不是将所有后代元素节点都列出来了吗?lastElementChild 真的可以用上面代码实现???求解惑。。。
1 回答
qq_0_165
TA贡献1条经验 获得超0个赞
1,我试过了:两种得到的都是子节点<em>DOM</em>。反正,此处attr元素有1个子节点,是<em>元素节点,<em>又有1个子节点(文本节点DOM)。我觉得也许是书错了吧,你可以再自己试试!
2,因为,lastChild得到的可能是文本节点,而不是元素节点,因此,我们要使用parentNode.getElementsByTagName('*')得到所有的后代元素节点,就将所有的后代元素节点放在quoteElements 数组里面,获取数组的最后一个元素(quoteElements[quoteElements.length - 1]),那么,得到的肯定就是最后一个元素节点啊!
添加回答
举报
0/150
提交
取消