javascript中查找元素所有兄弟节点需先获取父节点再过滤自身:用parentnode.children最常用,返回仅含元素节点的htmlcollection;parentnode.childnodes则包含所有节点类型,需手动筛选元素节点且排除自身。

在 JavaScript 中,查找某个元素的所有兄弟节点,核心思路是先获取该元素的父节点,再获取父节点下所有子元素节点(排除自身),即为它的兄弟节点。
使用 parentNode.children 获取元素兄弟节点(推荐)
parentNode.children 返回的是一个 HTMLCollection,只包含元素节点(即 `
- 先通过
element.parentNode拿到父元素 - 再用
parentNode.children获取所有子元素节点 - 遍历并过滤掉自己本身即可
示例代码:
function getSiblings(el) {
const parent = el.parentNode;
if (!parent) return [];
return Array.from(parent.children).filter(sibling => sibling !== el);
}
// 使用
const target = document.getElementById('myDiv');
const siblings = getSiblings(target);
console.log(siblings); // 所有同级元素节点(不含自己)
使用 parentNode.childNodes 获取所有类型的兄弟节点
parentNode.childNodes 返回的是 NodeList,包含所有子节点:元素节点、文本节点(如换行、空格)、注释节点等。若需完整 DOM 结构关系(比如处理纯文本内容或保留空白),可选此方式。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 注意:需手动过滤非元素节点(
node.nodeType === 1表示元素节点) - 同样要排除目标元素自身
示例代码:
function getAllSiblings(el) {
const parent = el.parentNode;
if (!parent) return [];
return Array.from(parent.childNodes)
.filter(node => node.nodeType === 1 && node !== el);
}
补充说明:不包含自己,也不含父节点或后代节点
兄弟节点(siblings)严格定义为:与当前元素拥有相同父节点的其他元素节点。因此:
- 不包括当前元素自己
- 不包括父节点、祖先节点
- 不包括子节点、后代节点
-
.nextElementSibling和.previousElementSibling只能获取紧邻的兄弟,不是“所有”
小技巧:快速获取前一个/后一个兄弟元素
如果只需要相邻兄弟,直接用原生属性更高效:
-
el.previousElementSibling—— 前一个兄弟元素(忽略文本节点) -
el.nextElementSibling—— 后一个兄弟元素
它们返回 null 表示不存在,无需额外判断类型,适合简单场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










