当前位置:首页 > JavaScript

js 实现siblings

2026-03-14 03:40:37JavaScript

实现 siblings 方法

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

使用 parentNode 和 children 属性

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

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,可以直接使用其内置方法:

js 实现siblings

$(element).siblings();

注意事项

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

标签: jssiblings
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…