nextElementSibling 是获取当前元素同级下一个元素节点的只读属性,跳过文本和注释节点,返回 Element 或 null;与 nextSibling 不同,它更符合“找下一个标签”的实际需求。

nextElementSibling 是 JavaScript 中用于获取当前元素的**下一个相邻的元素节点**(即同级的下一个 HTML 元素)的属性,它会跳过文本节点、注释节点等非元素节点。
基本用法和注意事项
它是一个只读属性,返回紧跟在当前元素后面的元素节点,如果没有则返回 null。和 nextSibling 不同,后者可能返回空格、换行等文本节点,而 nextElementSibling 更符合实际开发中“找下一个标签”的需求。
- 只找同级且紧邻的下一个元素,不跨层级
- 忽略空白文本节点(如换行、缩进)、注释节点
- 返回值是
Element类型或null,可直接调用元素方法(如.style、.classList)
简单示例:获取并操作下一个兄弟元素
HTML 结构:
JS 获取 item1 的下一个兄弟元素:
立即学习“Java免费学习笔记(深入)”;
const el = document.getElementById('item1');const next = el.nextElementSibling;
console.log(next); //
if (next) {
next.style.color = 'blue';
}
常见问题与避坑提示
- 如果下一个兄弟不是元素(比如是注释或纯空格),
nextElementSibling会自动跳过,直到找到第一个元素或返回null - 动态插入元素后,DOM 已更新,但需确保获取
nextElementSibling的时机在插入之后 - 在
for循环中反复使用el = el.nextElementSibling遍历时,记得加null判断防止死循环
对比 nextSibling 和 nextElementSibling
假设有如下 HTML(含换行):
此时:
– document.getElementById('a').nextSibling 可能是换行产生的 Text 节点
– document.getElementById('a').nextElementSibling 直接是 <div id="b"></div>


















