我正在尝试获取元素的最接近的父元素。
看着.closest() https://developer.mozilla.org/en-US/docs/Web/API/Element/closest,如果选择器与元素匹配,它似乎会返回元素本身:
Closest() 方法遍历 Element 及其父元素(标题
向文档根)直到找到与
提供选择器字符串。会自行返回或匹配的祖先。
如果不存在这样的元素,则返回 null。
(重点是我的)
那么,在给定选择器的情况下,获取元素最接近的父元素的最佳方法是什么?
Example
var el = document.getElementById('foo');
var closestParent = el.closest('div');
console.log(closestParent);
<div>root
<div>level1
<div id='foo'>level2</div>
</div>
</div>
如你看到的,el.closest('div');
回报el
本身,而不是与选择器匹配的最接近的父级div
(level1),这就是我需要的。
我知道在这种情况下我可以简单地做closestParent.parentElement
,但这只是一个例子,我想弄清楚是否可以避免.closest()
返回元素本身。
要排除当前元素,请获取closest()
相对于其父节点 https://developer.mozilla.org/en-US/docs/Web/API/Node/parentNode:
var el = document.getElementById('foo');
var closestParent = el.parentNode.closest('div');
console.log(closestParent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)