所以基本上我想选择有特定子元素的元素。现在我有选择器来选择链的子元素:
const el = document.querySelector('#leftMenu ul > li > a:not(.active) + ul > li.active')
现在要得到我感兴趣的元素,我必须这样做:
const x = el.parentNode.parentNode;
有没有什么方法可以直接从选择器中获取这个元素?
所以基本上我想选择有特定子元素的元素。现在我有选择器来选择链的子元素:
const el = document.querySelector('#leftMenu ul > li > a:not(.active) + ul > li.active')
现在要得到我感兴趣的元素,我必须这样做:
const x = el.parentNode.parentNode;
有没有什么方法可以直接从选择器中获取这个元素?
3条答案
按热度按时间pexxcrt21#
在Chrome 105+中,可以使用
:has
伪选择器:q35jwt9p2#
当前,无法选择父元素(即具有指定子元素的元素)。请参见Is there a CSS parent selector?
将来可能会有一个,但目前,你的方法看起来是最好的解决方案。
vyu0f0g13#
没有父选择器,
然而,它应该是available in CSS level 4,这离实现还有很长的路要走。
因此,您能做的最好的事情就是添加一行:
const el = document.querySelector('#leftMenu ul > li > a:not(.active) + ul > li.active').parentNode.parentNode;