当前位置:首页 > JavaScript

js 实现siblings

2026-03-14 03:40:37JavaScript

实现 siblings 方法

在 JavaScript 中,siblings 方法用于获取当前元素的所有兄弟元素(不包括自身)。原生 JavaScript 并未直接提供此方法,但可以通过组合 DOM 操作实现。

js 实现siblings

使用 parentNode 和 children 属性

通过获取父元素的所有子元素,再过滤掉当前元素本身:

js 实现siblings

function siblings(element) {
    const children = element.parentNode.children;
    return Array.from(children).filter(child => child !== element);
}

使用 previousSibling 和 nextSibling 遍历

通过遍历前一个和后一个兄弟节点,收集所有非文本节点的元素:

function siblings(element) {
    const siblings = [];
    let sibling = element.previousSibling;

    while (sibling) {
        if (sibling.nodeType === 1) {
            siblings.push(sibling);
        }
        sibling = sibling.previousSibling;
    }

    sibling = element.nextSibling;
    while (sibling) {
        if (sibling.nodeType === 1) {
            siblings.push(sibling);
        }
        sibling = sibling.nextSibling;
    }

    return siblings;
}

使用 jQuery 的 siblings 方法

如果项目中已引入 jQuery,可以直接使用其内置方法:

$(element).siblings();

注意事项

  • 上述方法返回的是元素数组,可以根据需要进一步操作。
  • 如果需要包含文本节点或其他类型节点,需调整过滤条件(如 nodeType === 3 为文本节点)。
  • 性能上,parentNode.children 的方式通常更高效。

标签: jssiblings
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…