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以下浏览器,可以使用上面的代码。