Javascript node.nextSibling和ChildNode.nextElementSibling之间有什么区别?

Javascript node.nextSibling和ChildNode.nextElementSibling之间有什么区别?,javascript,dom,nodes,Javascript,Dom,Nodes,这里是div-01 这是div-02 他们不是一回事吗 两者都返回紧跟其后的节点。我读了很多文章,但对我来说似乎是一样的,但不知道在哪里使用一个或另一个?nextElementSibling总是返回一个元素nextSibling可以返回任何类型的节点。它们与您的示例相同,但在其他情况下不同,例如: <p><span id="span-01">Here is span-01</span> Some text at the top level <span i

这里是div-01
这是div-02

他们不是一回事吗


两者都返回紧跟其后的节点。我读了很多文章,但对我来说似乎是一样的,但不知道在哪里使用一个或另一个?

nextElementSibling
总是返回一个元素
nextSibling
可以返回任何类型的节点。它们与您的示例相同,但在其他情况下不同,例如:

<p><span id="span-01">Here is span-01</span>
Some text at the top level
<span id="span-02">Here is span-02</span></p>
这里是span-01
顶层的一些文本
这是span-02


在本例中,
document.getElementById('span-01').nextElementSibling
span-02
,但
document.getElementById('span-01').nextSibling
是包含“顶层某些文本”的文本节点(或者,正如@Manngo在评论中指出的,将文本与上面的元素分隔开的空白——似乎有些浏览器将元素和非空白节点之间的空白放在单独的节点中,而另一些浏览器将其与文本的其余部分相结合)。