<div class="a">
<span class="a">a</span>
<span class="a">b</span>
<span class="a">c</span>
</div>
假设我有一个名为 divA
的变量,表示顶级 div 节点。 divA.querySelectorAll('.a')
将返回 3 个 span.a
的列表。我想知道是否有一种简单的方法可以返回包含 divA 本身在内的 4 个元素的列表?
我知道我可以从更高级别的节点开始,但我们假设可能还有其他我不想弄乱的 .a
元素。
实际上我仍然需要测试 divA
是否与我的选择器匹配。那么CSS选择器有没有办法测试元素本身呢?
我可以创建一个父节点并从那里运行 querySelectorAll。但如果有更简单的方法,我就不需要走那么远。
最佳答案
I still need to test whether divA matches my selector or not. Is there a way for css selector to test an element itself?
querySelector()
无法返回其运行所在的上下文元素。
您可以做的是使用 @Andreas 的解决方案,然后使用 filter()
/matches()
组合。
[divA, ...divA.querySelectorAll('.a')].filter(el => el.matches('.a'));
关于javascript - querySelectorAll 包含 self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59838866/