Javascript querySelectorAll以包含self A. B C

Javascript querySelectorAll以包含self A. B C,javascript,Javascript,假设我有一个名为divA的变量,表示顶级div节点divA.querySelectorAll('.a')将返回3个span.as的列表。我想知道是否有一种简单的方法可以返回包括divA本身在内的4个元素的列表 我知道我可以从一个更高级别的节点开始,但让我们假设可能还有其他.a元素我不想弄乱它们 实际上,我仍然需要测试divA是否匹配我的选择器。那么css选择器有没有办法测试元素本身呢 我可以创建一个父节点并从那里运行querySelectorAll。但是如果有更简单的方法,我不需要走那么远 我仍

假设我有一个名为
divA
的变量,表示顶级div节点
divA.querySelectorAll('.a')
将返回3个
span.a
s的列表。我想知道是否有一种简单的方法可以返回包括divA本身在内的4个元素的列表

我知道我可以从一个更高级别的节点开始,但让我们假设可能还有其他
.a
元素我不想弄乱它们

实际上,我仍然需要测试
divA
是否匹配我的选择器。那么css选择器有没有办法测试元素本身呢

我可以创建一个父节点并从那里运行querySelectorAll。但是如果有更简单的方法,我不需要走那么远

我仍然需要测试divA是否匹配我的选择器。有 css选择器测试元素本身的一种方法

querySelector()
无法返回它所运行的上下文元素

您可以使用@Andreas解决方案,然后使用
filter()
/
matches()
组合

[divA, ...divA.querySelectorAll('.a')].filter(el => el.matches('.a'));

[divA,…divA.queryselectoral('.a')]
我的意思是,把它添加到数组中<代码>[divA,…divA.queryselectoral('.a')]非常感谢。实际上,我仍然需要测试divA是否匹配我的选择器。css选择器是否有办法测试元素本身?这是一个很好的解决方案。然而,我个人认为
divA.matches('.a')&&divA | | divA.querySelector('.a')
是解决这个问题的一个更优雅(技术上也不那么详尽)的解决方案。看。@BartHofland同意了(当然:),但这个问题是关于
.queryselectoral()
,所以是梅西耶。哦。。。是的,的确如此。我没有注意到。很抱歉