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

标签 javascript dom nodes

<div id="div-01">Here is div-01</div> <div id="div-02">Here is div-02</div>

它们不是同一个东西吗?

两者都返回紧随其后的节点。我读了很多文章,但在我看来都喜欢同样的东西,但不知道在哪里使用其中一个与另一个?

最佳答案

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>

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

关于javascript - node.nextSibling 和 ChildNode.nextElementSibling 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226571/

相关文章:

c++ - 列出所有函数仍在尝试检索我从二叉搜索树中删除的节点

javascript - 这个空的空间是从哪里来的?

javascript - AngularJS:ng-switch + ng-repeat,在 switch 语句内带有按钮

php - 在给定元素下按 XPath 搜索

javascript - 如何知道类何时更改/添加到 HTML 元素?

reactjs - 尝试输入 react 应用程序路由时出现 404

xslt - 无论当前位置如何,如何获取所有前面的节点

javascript - react : "react-scripts start" cannot find module webpack

javascript - 在 summer note JS 中加载数据时弹出意外标识符错误

javascript - 很简单但无法解决。抓取元素