JavaScript的siblings()方法
JavaScript的siblings()方法可以获取一个元素的同级元素集合,可以用于操作DOM元素。
// 获取id为box的元素的所有同级元素
let siblings = document.getElementById('box').siblings();
siblings()方法返回的是一个NodeList集合,可以使用for循环来遍历所有同级元素,也可以使用数组的方法来操作NodeList,比如:
// 使用for循环遍历
for (let i = 0; i < siblings.length; i++) {
console.log(siblings[i]);
}
// 使用数组的方法
siblings.forEach(function(item) {
console.log(item);
});
siblings()方法返回的NodeList集合中会包含元素本身,如果不想包含元素本身,可以使用filter()方法过滤掉:
// 过滤掉元素本身
let siblings = document.getElementById('box').siblings().filter(function(item) {
return item !== document.getElementById('box');
});
siblings()方法支持IE9+浏览器,如果要兼容IE8以下浏览器,可以使用以下代码:
// 兼容IE8以下浏览器
if (Element.prototype.siblings === undefined) {
Element.prototype.siblings = function() {
let siblings = [];
let child = this.parentNode.firstChild;
for (; child; child = child.nextSibling) {
if (child.nodeType === 1 && child !== this) {
siblings.push(child);
}
}
return siblings;
}
}
来说,JavaScript的siblings()方法可以获取一个元素的同级元素集合,可以使用for循环或数组的方法来操作NodeList,也可以使用filter()方法来过滤掉元素本身,如果要兼容IE8以下浏览器,可以使用上面的代码。