如何使element.querySelector() 包含根元素?

7
我处于一种独特的情况,需要对根元素element自身进行测试,如果匹配,则返回element.querySelector(selector)。您该如何实现呢?
请注意,element.parentNode.querySelector(selector)对我来说行不通,因为它会匹配element的兄弟元素。

@Teemu .closest() 查找。 - Pointy
@Teemu 但是如果.querySelector()找到匹配项,那么从那一点开始,如果.closest()在DOM API中的工作方式类似于jQuery,则我认为它将返回找到的元素本身。 - Pointy
1个回答

10

你可以做

let matched = element.matches(selector) && element || element.querySelector(selector);

首先测试该元素,考虑到.querySelector()的行为,这可能是有意义的。


太好了,我不知道matches这个方法。 - Daniel Birowsky Popeski
我认为这个回答比所提到的问题被标记为重复的被接受的答案更优雅。 - Bart Hofland
1
@BartHofland 当然可以。如果Pointy也在那边添加了这个答案,我也会点赞的。请通知我一下:) - Daniel Birowsky Popeski
@DanielBirowskyPopeski 嗯,关于这个链接的重复问题是它涉及到.querySelectorAll(),所以会有点混乱。 - Pointy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接