javascript 具有特定子元素的元素的查询选择器

4nkexdtk  于 2023-01-16  发布在  Java
关注(0)|答案(3)|浏览(118)

所以基本上我想选择有特定子元素的元素。现在我有选择器来选择链的子元素:

const el = document.querySelector('#leftMenu ul > li > a:not(.active) + ul > li.active')

现在要得到我感兴趣的元素,我必须这样做:

const x = el.parentNode.parentNode;

有没有什么方法可以直接从选择器中获取这个元素?

pexxcrt2

pexxcrt21#

Chrome 105+中,可以使用:has伪选择器:

document.querySelector(`a:has(b)`).style.color = 'red'
<a>1</a>
<a><b>2</b></a>
<a>3</a>
q35jwt9p

q35jwt9p2#

当前,无法选择父元素(即具有指定子元素的元素)。请参见Is there a CSS parent selector?
将来可能会有一个,但目前,你的方法看起来是最好的解决方案。

vyu0f0g1

vyu0f0g13#

没有父选择器,
然而,它应该是available in CSS level 4,这离实现还有很长的路要走。
因此,您能做的最好的事情就是添加一行:
const el = document.querySelector('#leftMenu ul > li > a:not(.active) + ul > li.active').parentNode.parentNode;

相关问题