当前位置:首页 > 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中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

利用js实现

利用js实现

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