在JavaScript中,获取同级节点(兄弟节点)有多种方法,以下是一些常用的方法和相关概念:
nextSibling
和previousSibling
属性nextSibling
:返回当前节点的下一个兄弟节点。previousSibling
:返回当前节点的上一个兄弟节点。previousSibling
:返回当前节点的上一个兄弟节点。nextElementSibling
和previousElementSibling
属性nextElementSibling
:返回当前元素的下一个兄弟元素节点。previousElementSibling
:返回当前元素的上一个兄弟元素节点。previousElementSibling
:返回当前元素的上一个兄弟元素节点。parentNode
和children
属性parentNode
:返回当前节点的父节点。children
:返回当前节点的所有子元素节点的集合。children
:返回当前节点的所有子元素节点的集合。nextElementSibling
和previousElementSibling
属性可以避免这个问题。nextSibling
和nextElementSibling
会返回null
。假设有以下HTML结构:
<div id="parent">
<div id="sibling1">Sibling 1</div>
<div id="target">Target</div>
<div id="sibling2">Sibling 2</div>
</div>
获取#target
元素的兄弟节点:
var target = document.getElementById('target');
// 获取下一个兄弟元素节点
var nextSibling = target.nextElementSibling;
console.log(nextSibling.id); // 输出 "sibling2"
// 获取上一个兄弟元素节点
var previousSibling = target.previousElementSibling;
console.log(previousSibling.id); // 输出 "sibling1"
// 获取所有兄弟元素节点
var siblings = Array.from(target.parentNode.children).filter(function(sibling) {
return sibling !== target;
});
console.log(siblings.map(sibling => sibling.id)); // 输出 ["sibling1", "sibling2"]
通过以上方法和示例代码,你可以灵活地获取和操作DOM中的同级节点。
领取专属 10元无门槛券
手把手带您无忧上云