js实现父选择器
在JavaScript中,没有直接的“父选择器”方法,但可以通过DOM操作或选择器组合实现类似功能。以下是几种常见方法:
通过parentNode属性获取父元素
使用parentNode属性可以获取当前元素的直接父节点:

const childElement = document.querySelector('.child');
const parentElement = childElement.parentNode;
通过closest方法向上查找匹配元素
Element.closest()方法沿着DOM树向上查找匹配选择器的最近祖先元素:

const childElement = document.querySelector('.child');
const parentElement = childElement.closest('.parent');
通过事件委托获取事件源父元素
在事件监听中,可以通过event.currentTarget获取绑定事件的父元素:
document.querySelector('.parent').addEventListener('click', function(event) {
// this指向.parent元素
console.log(this);
});
组合querySelector和关系选择器
在某些情况下,可以通过CSS关系选择器组合实现:
// 选择所有包含.child元素的.parent元素
const parents = document.querySelectorAll('.parent:has(.child)');
注意事项
parentNode返回的是直接父节点,可能是元素节点、文档节点或文档片段节点closest()方法在IE中不被支持,需要polyfill:has()选择器目前仅在部分浏览器中支持
这些方法可以根据不同场景选择使用,closest()通常是最接近CSS父选择器概念的实现方式。






