【问题标题】:document.querySelectorAll('a[id="*"]'); and wildcard or regex?document.querySelectorAll('a[id="*"]');和通配符还是正则表达式?
【发布时间】:2016-12-07 06:30:37
【问题描述】:

假设一个 HTML 文档中有一些内部锚点/书签和其他 html 通用内容:

<a id='alfa'></a>
  other HTML content
<a id='beta'></a>
  other HTML content
<a id='gamma'></a>
  other HTML content
<a id='delta'></a>
  other HTML content
<a id='omega'></a>
  other HTML content
...
  other HTML content
<a id='etha'></a>

其他 HTML 内容:表示其他任何内容,甚至是其他 &lt;a href='something'&gt;没有任何 id 设置

我想要的是一个跨(最近的)浏览器解决方案,以获取所有带有 id 集的锚,而不是那些没有任何 id 的锚。

但我想要的是,如果可能的话,在纯 js 中,仅在一个 js 命令中选择所有将其 id 属性设置为任何通用值的锚点

我已经知道,有可能将它们全部获取,然后使用 for 循环提取我需要的那些,但这不是最佳解决方案。 我也知道https://stackoverflow.com/a/8714421/6508528 可以获取开始、结束或包含某些 id 部分的元素。 但是如果我不知道 id 的任何部分/子字符串怎么办?

我不知道可能是这样的:

var allAnchors = document.querySelectorAll('a[id="*"]');

这样可以避免在获取数组allAnchors 后对其进行重新处理。

【问题讨论】:

    标签: regex wildcard selectors-api


    【解决方案1】:

    这会抓取所有具有 id attr 的锚元素。设置:

    document.querySelectorAll('a[id]');
    

    这会抓取所有没有 id 的锚元素:

    document.querySelectorAll('a:not([id])');
    

    【讨论】:

    • 请说明:这会选择没有任何id的所有a元素还是某个id的所有a元素?我问是因为我不明白那个位置的非运算符是什么。提前致谢
    • 所有没有任何id的锚元素。
    • 哦...对于所有设置了 id 的锚元素?
    • 对于以下类似主题的问题是否也有任何解决方案? stackoverflow.com/questions/38774726/…
    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2013-08-01
    • 2014-04-23
    • 2011-06-07
    相关资源
    最近更新 更多