我試圖得到一個元素的最近的父元素。
看著。closest(),如果選擇器與之匹配,它似乎會返回元素本身:
最接近的()方法遍歷元素及其父元素(標題 直到它找到一個與 提供的選擇器字符串。將返回自身或匹配的祖先。 如果不存在這樣的元素,則返回null。
(重點是我的)
那么,給定一個選擇器,獲取元素的最近父元素的最好方法是什么呢?
例子
var el = document.getElementById('foo');
var closestParent = el.closest('div');
console.log(closestParent);
<div>root
<div>level1
<div id='foo'>level2</div>
</div>
</div>
要排除當前元素,請獲取相對于其parentNode最近的()。
var el = document.getElementById('foo');
var closestParent = el.parentNode.closest('div');
console.log(closestParent);
最接近的文件 這是一個DOM,它不是關于父元素,而是關于最近的元素,所以你可以像下面這樣改變你的查詢,但是如果你需要父元素,就使用parentEelement
var el = document.getElementById('foo');
var closestParent = el.closest('div:not(#foo)');
console.log(closestParent);
<div>root
<div>level1
<div id='foo'>level2</div>
</div>
</div>