当前位置:首页 > JavaScript

js 实现siblings

2026-02-01 05:21:40JavaScript

实现 siblings 方法

在 JavaScript 中,可以通过遍历 DOM 元素的父节点子元素列表来获取所有兄弟节点(siblings)。以下是几种实现方式:

使用纯 JavaScript 实现

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

// 示例用法
const el = document.querySelector('.target');
const siblingsList = siblings(el);

扩展 Element.prototype

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

// 示例用法
const el = document.querySelector('.target');
const siblingsList = el.siblings();

包含当前元素的版本

如果需要包含当前元素在内的所有兄弟节点:

function siblings(element, includeSelf = false) {
  if (!element.parentNode) return [];
  const children = Array.from(element.parentNode.children);
  return includeSelf ? children : children.filter(child => child !== element);
}

使用 jQuery 风格实现

function $(selector) {
  const el = document.querySelector(selector);
  return {
    siblings: function() {
      if (!el.parentNode) return [];
      const children = Array.from(el.parentNode.children);
      return children.filter(child => child !== el);
    }
  };
}

// 示例用法
const siblingsList = $('.target').siblings();

考虑文本节点的情况

如果需要包含文本节点在内的所有兄弟节点:

js 实现siblings

function siblings(element, includeTextNodes = false) {
  if (!element.parentNode) return [];
  const children = includeTextNodes 
    ? Array.from(element.parentNode.childNodes)
    : Array.from(element.parentNode.children);
  return children.filter(child => child !== element);
}

这些实现方式都遵循相同的原理:通过访问元素的父节点,获取所有子节点,然后过滤掉当前元素本身。可以根据具体需求选择适合的版本。

标签: jssiblings
分享给朋友:

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

vue实现js休眠

vue实现js休眠

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