document.querySelectorAll( '一个[ID = “*”]');和通配符或正则表达式?

时间:2016-08-02 03:31:45

标签: regex wildcard selectors-api

假设一个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内容 :表示其他任何内容甚至其他<a href='something'>没有设置任何ID

我想要的是一个交叉(最近)浏览器解决方案,以获得所有具有ID设置的锚点,而不是那些没有任何ID的锚点。

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

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

我不知道可能是这样的:

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

可以防止在获取数组后重新处理数组allAnchors

1 个答案:

答案 0 :(得分:3)

这将使用id attr获取所有锚元素。设置:

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

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

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