问题标签 [selectors-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
148956 浏览

javascript - 为什么JS代码“var a = document.querySelector('a[data-a=1]');” 导致错误?

我在 DOM 中有一个元素:

<a href="#" data-a="1">Link</a>

我想通过它的 HTML5 自定义数据属性来获取这个元素data-a。所以我写了JS代码:

var a = document.querySelector('a[data-a=1]');

但是这段代码不起作用,我在浏览器的控制台中收到错误。(我测试了 Chrome 和 Firefox。)

JS代码var a = document.querySelector('a[data-a=a]');不会导致错误。所以我认为问题在于 HTML5 的 JS APIdocument.querySelector不支持在 HTML5 自定义数据属性中查找数字值。

这是浏览器实现错误的问题还是与 HTML5 规范相关的问题document.querySelector

然后我在http://validator.w3.org/上测试了以下代码:

他们经过验证。由于这些 HTML5 代码已经过验证。我们应该可以使用 HTML5 的 JS APIdocument.querySelector通过其自定义数据属性来查找此锚元素。但事实是我出错了。

HTML5 对 HTML5 JS API 的规范是否document.querySelector说此方法不能查找具有数字值的 HTML5 数据自定义属性?(需要 HTML5 规范源。)

0 投票
1 回答
1257 浏览

javascript - 使用 querySelectorAll 获取元素

我有html标签,

我需要使用这个元素

但是上面的代码总是返回空数组。请帮助我使用 querySelectorAll() 获取元素。

0 投票
2 回答
2397 浏览

javascript - 如果我不需要结果列表中 CSS 选择器的粒度,为什么我会想要一个静态 NodeList/HTMLCollection 而不是“实时”NodeList?

我通常听说这是因为实时 NodeLists 是“坏的” (请参阅​​这篇 Zakas 文章),并且决定querySelectorAll返回一个 static HTMLCollection。为什么人们认为实时 NodeList 是一件坏事?代码示例可能会帮助我最好地理解这一点。

如果每当我关心使用缓存的节点集合的值进行任何计算时,该集合恰好不是过时的快照,我真的不能将其视为“坏”的事情。

我确切地了解使用 CSS Selector 字符串选择元素有多么有用,但如果我只能在获取该集合后可靠地运行代码,它似乎比 live NodeList.

0 投票
3 回答
41958 浏览

javascript - 使用 querySelectorAll 获取选定的选项

我想知道是否有可能在 Javascript 中<select multiple>使用 Selctors API 获取字段中当前选定的选项,而不是对所有选项进行“愚蠢”迭代。

select.querySelectorAll('option[selected="selected"]')仅返回在原始 HTML 中标记为预选的选项,这不是我想要的。有任何想法吗?

0 投票
1 回答
1730 浏览

javascript - document.querySelector 未定义标准模式 iframe 在 quirks 模式父级中运行

在运行带有书签的 IE 10 时遇到这种情况。当我针对以怪异模式运行的页面运行小书签并尝试使用 document.querySelector 时,document.querySelector 未定义。

为了解决这个问题,当我检测到 document.documentMode 为 5(怪癖模式)时,我创建了一个 iframe 并将页面内容复制到该 iframe 中以将其置于标准模式。我验证 iframe 中的文档处于标准模式(document.documentMode 为 8 - IE 8 标准模式),但 document.querySelector 仍未定义。我相信 documentMode 必须至少为 9 才能支持 querySelector。我无法弄清楚为什么 documentMode 是 8 而不是 10,因为我在 IE 10 上运行。

0 投票
2 回答
8948 浏览

xpath - 将 XPath 与 CasperJS QuerySelectorAll 一起使用不起作用

出于某种原因,当我尝试运行以下代码时:

返回一个空对象,但是当我将相同的 xpath 选择器与 thenClick 方法结合使用时,一切正常,并且 url 发生了变化。为什么会这样?

0 投票
1 回答
1017 浏览

javascript - document.querySelectorAll('a:visited') 不起作用

document.querySelectorAll('a:visited')总是返回空的 NodeList,即使 DOM 有一些访问过的链接。

我已经在 Chrome 中尝试过。是否有任何已知的错误或预期的行为?

如果我在样式表中使用它而不是 querySelectorAll,虽然:visited效果很好。

我认为伪类可以作为querySelectorAll().

0 投票
1 回答
851 浏览

javascript - querySelectorAll 参数的正则表达式验证器

我编写了非常基本的正则表达式来验证 querySelectorAll() 方法的参数。验证了一些随机值,似乎它工作正常。

我只是想知道是否可以进行一些改进。

正则表达式可能会遗漏一些验证,但我的主要问题是关于我的方法,关于我编写这个正则表达式的方式。我对正则表达式也很陌生。如果我在表现方面犯了任何重大错误,请指出我。

0 投票
1 回答
55 浏览

javascript - 关于“活”元素的解释

我刚刚阅读了这篇关于 NodeLists 的文章:

http://www.nczonline.net/blog/2010/09/28/why-is-getelementsbytagname-faster-that-queryselectorall/

如果我理解正确,getElementsByTag 名称是实时的,而 querySelectorAll 不是。那么有人可以向我解释为什么 pNotLive 的标题是“stackoverflow”吗?:

0 投票
1 回答
7199 浏览

javascript - 如何将 querySelectorAll() 函数添加到 IE <= 7 的 Element?

使用本文中的代码,我已成功添加querySelectorAlldocumentIE7 中。

但我需要在一个元素上使用它而不是document,像这样:

有没有办法添加querySelectorAll到 IE7 中的元素而不仅仅是添加到 IE7 中document