首页 > js 使用last-child出现了问题?

js 使用last-child出现了问题?

music.lastChild 得到的不是最后一个.music_play标签是什么原因?


lastChild不一定能返回最后一个元素(element),你应该用lastElementChild
原因是DOM里面有node的概念,元素(element)是node的一种,还有其他的node type:

<div>
text1
<h4>h4 title</h4>
text2
<p>this is a paragraph</p>
</div>

以上的text1, text2甚至是</p></div>之间的换行符都是单独的node。你可以通过div元素的childNodes属性来查看。

你这里的lastChild获取的就是</div>前的一个text node,内容是换行。知道了原因后,那么lastChild什么样才能返回music_play呢?

<div class="music">
    <img src="...">
    <img src="..." class="music_play"></div>

这样就可以了


你可以先看看 lastChildlastElementChild 的区别,应该就能得到想要的东西了。
至于你现在得到的是什么,你可以看看 https://www.w3.org/TR/CSS2/visuren.html 里面的 Anonymous box


Node 与 Element。Element是Node的子集。

【热门文章】
【热门文章】