querySelectorAll 只选择顶层匹配的元素

Qian Chen

顶层,我的意思是没有任何匹配祖先的元素,就像span*下面的代码片段。我想知道是否有任何简单的方法可以只选择span*s 而不是选择spans。

span*
span*   
div
  span*
    span
    span   
  span*

向投票结束这个问题的 dgknca、CBroe、Bill P. 提出问题,您不清楚这个问题的哪一部分?

更新:

我最终使用了 TreeWalker:

const nodes = [];
const treeWalker = document.createTreeWalker(rootNode, NodeFilter.SHOW_ELEMENT, {
   acceptNode: node => {
      if (node.matches(['span'])) {
         nodes.push(node);
         return NodeFilter.FILTER_REJECT;
      }
      nodes.push(node);
      return NodeFilter.FILTER_ACCEPT;
   }
});
while (treeWalker.nextNode()) { }
return nodes;

我认为这个问题不应该被关闭。我相信这会帮助很多人。

昆汀

在选择器语法中,没有办法表达“没有相同类型祖先的元素”(甚至是特定类型的元素)。

显而易见的方法是获取每个元素,然后递归检查所有祖先以确保没有一个匹配的tagName.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

querySelectorAll,通配符是否匹配?

来自分类Dev

Javascript querySelectorAll,如何仅与顶部元素匹配?

来自分类Dev

querySelectorAll 只返回 id 名称

来自分类Dev

选择queryselectorAll元素的多个第二实例?

来自分类Dev

如何通过 querySelectorAll() 选择所有元素

来自分类Dev

遍历更多querySelectorAll匹配项

来自分类Dev

DOM querySelectorAll - 元素 ID 不以

来自分类Dev

使用querySelectorAll定位嵌套元素

来自分类Dev

使用querySelectorAll选择与document.URL匹配的所有href?

来自分类Dev

为什么querySelectorAll不选择我所有的元素?

来自分类Dev

querySelectorAll是在多个图表中选择元素的好方法吗?

来自分类Dev

使用querySelectorAll按标题选择多个项目

来自分类Dev

使用querySelectorAll从多个选择中获取值

来自分类Dev

带有后代的queryselectorAll未正确选择

来自分类Javascript

使用querySelectorAll更改多个元素的样式属性

来自分类Dev

Puppeteer querySelectorAll 无法正确获取元素

来自分类Javascript

如何删除使用querySelectorAll获取的元素?

来自分类Dev

使用querySelectorAll更新多个元素样式

来自分类Dev

通过querySelectorAll上的ID排除特定元素

来自分类Dev

JSDOM的querySelectorAll返回太多XML元素

来自分类Dev

使用querySelectorAll在forloop中显示div元素

来自分类Dev

querySelectorAll对指定元素不起作用

来自分类Dev

为什么“document.querySelectorAll”只针对直系孩子?

来自分类Dev

使用 querySelectorAll 查找逗号分隔属性的匹配项

来自分类Dev

使用变量作为id的'querySelectorAll'上的无效选择器

来自分类Dev

使用querySelectorAll选择后提取单个数据

来自分类Dev

带有 document.querySelectorAll 的多个选择器

来自分类Dev

在选择器内使用变量作为querySelectorAll

来自分类Dev

使用 javascript queryselectorall 代替 jquery 选择器

Related 相关文章

  1. 1

    querySelectorAll,通配符是否匹配?

  2. 2

    Javascript querySelectorAll,如何仅与顶部元素匹配?

  3. 3

    querySelectorAll 只返回 id 名称

  4. 4

    选择queryselectorAll元素的多个第二实例?

  5. 5

    如何通过 querySelectorAll() 选择所有元素

  6. 6

    遍历更多querySelectorAll匹配项

  7. 7

    DOM querySelectorAll - 元素 ID 不以

  8. 8

    使用querySelectorAll定位嵌套元素

  9. 9

    使用querySelectorAll选择与document.URL匹配的所有href?

  10. 10

    为什么querySelectorAll不选择我所有的元素?

  11. 11

    querySelectorAll是在多个图表中选择元素的好方法吗?

  12. 12

    使用querySelectorAll按标题选择多个项目

  13. 13

    使用querySelectorAll从多个选择中获取值

  14. 14

    带有后代的queryselectorAll未正确选择

  15. 15

    使用querySelectorAll更改多个元素的样式属性

  16. 16

    Puppeteer querySelectorAll 无法正确获取元素

  17. 17

    如何删除使用querySelectorAll获取的元素?

  18. 18

    使用querySelectorAll更新多个元素样式

  19. 19

    通过querySelectorAll上的ID排除特定元素

  20. 20

    JSDOM的querySelectorAll返回太多XML元素

  21. 21

    使用querySelectorAll在forloop中显示div元素

  22. 22

    querySelectorAll对指定元素不起作用

  23. 23

    为什么“document.querySelectorAll”只针对直系孩子?

  24. 24

    使用 querySelectorAll 查找逗号分隔属性的匹配项

  25. 25

    使用变量作为id的'querySelectorAll'上的无效选择器

  26. 26

    使用querySelectorAll选择后提取单个数据

  27. 27

    带有 document.querySelectorAll 的多个选择器

  28. 28

    在选择器内使用变量作为querySelectorAll

  29. 29

    使用 javascript queryselectorall 代替 jquery 选择器

热门标签

归档