当前位置:首页 > JavaScript

js 实现siblings

2026-04-05 21:46:54JavaScript

实现 siblings 方法

在原生 JavaScript 中,DOM 元素没有直接提供 siblings 方法,但可以通过组合 parentNodechildren 属性来实现。

js 实现siblings

方法一:过滤兄弟节点

js 实现siblings

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

方法二:使用 previousSibling 和 nextSibling

Element.prototype.siblings = function() {
    let siblings = [];
    let sibling = this.previousSibling;

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

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

    return siblings;
};

使用示例

const element = document.getElementById('target');
const siblings = element.siblings();
console.log(siblings); // 输出所有兄弟节点数组

注意事项

  1. 方法一会返回所有同级的元素节点,不包括文本节点等其他类型节点
  2. 方法二需要手动过滤非元素节点(nodeType === 1)
  3. 扩展原生对象的原型可能会与其他库产生冲突
  4. 如果不希望修改原型,可以创建独立函数:
function getSiblings(el) {
    return Array.from(el.parentNode.children).filter(child => child !== el);
}

这些实现方式都能获取到指定元素的所有兄弟元素节点,根据具体需求选择合适的方法。

标签: jssiblings
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…