当前位置:首页 > JavaScript

js parents 实现

2026-03-14 08:33:59JavaScript

parents 方法实现

在 JavaScript 中,parents 方法用于获取一个元素的所有祖先元素,类似于 jQuery 中的 parents() 方法。以下是几种实现方式:

js parents 实现

原生 JavaScript 实现

function getParents(element) {
  const parents = [];
  let current = element.parentElement;

  while (current) {
    parents.push(current);
    current = current.parentElement;
  }

  return parents;
}

使用 Element.closest 实现

function getParents(element, selector) {
  const parents = [];
  let current = element.parentElement;

  while (current) {
    if (!selector || current.matches(selector)) {
      parents.push(current);
    }
    current = current.parentElement;
  }

  return parents;
}

使用递归实现

function getParents(element, parents = []) {
  if (!element.parentElement) return parents;
  parents.push(element.parentElement);
  return getParents(element.parentElement, parents);
}

示例用法

const childElement = document.querySelector('.child');
const allParents = getParents(childElement);
console.log(allParents); // 输出所有祖先元素

带选择器过滤

const filteredParents = getParents(childElement, '.parent-class');
console.log(filteredParents); // 输出匹配选择器的祖先元素

这些方法可以根据具体需求选择使用,原生实现简单高效,递归实现代码简洁但可能受限于调用栈深度。

标签: jsparents
分享给朋友:

相关文章

js实现验证码

js实现验证码

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

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现继承

js实现继承

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

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…