JavaScript的siblings()方法获取同级元素集合

分类:知识百科 日期: 点击:0

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

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。