Node: nextSibling 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Node 接口的只读 nextSibling 属性返回指定节点在其父节点的 childNodes 列表中紧邻的下一个节点,如果指定节点是父元素中的最后一个子节点,则返回 null

注意: 浏览器会在文档中插入 Text 节点来表示源代码标记中的空格。因此,使用 Node.firstChildNode.previousSibling 等方法获得的节点可能指向一个空格文本节点,而不是作者实际想要获取的元素。

有关此行为的更多信息,请参阅 DOM 中的空格处理 部分。

您可以使用 Element.nextElementSibling 来获取下一个元素,忽略任何空格节点、其他元素之间的文本或注释。

要通过子节点列表反向导航,请使用 Node.previousSibling

一个代表当前节点的下一个兄弟节点的 Node,如果没有则为 null

示例

html
<div id="div-1">Here is div-1</div>
<div id="div-2">Here is div-2</div>
<br />
<output><em>Not calculated.</em></output>
js
let el = document.getElementById("div-1").nextSibling;
let i = 1;

let result = "Siblings of div-1:\n";

while (el) {
  result += `${i}. ${el.nodeName}\n`;
  el = el.nextSibling;
  i++;
}

const output = document.querySelector("output");
output.innerText = result;

规范

规范
DOM
# ref-for-dom-node-nextsibling①

浏览器兼容性

另见