最佳答案
我在 DOM 中有一个元素:
<a href="#" data-a="1">Link</a>
我想通过它的 HTML5自定义数据属性 data-a
获得这个元素:
var a = document.querySelector('a[data-a=1]');
但是这个代码不起作用,我在浏览器的控制台中得到了一个错误(我测试了 Chrome 和 Firefox)
JS 代码 var a = document.querySelector('a[data-a=a]');
不会导致错误。所以我认为问题在于 HTML5的 JS API document.querySelector
不支持在 HTML5自定义数据属性中查找数值。
这是浏览器实现错误的问题,还是与 document.querySelector
相关的 HTML5规范的问题?
然后我在 http://validator.w3.org/上测试了以下代码:
<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML Document</title>
<a href="#" data-a="1">Link</a>
它们是有效的。因为这些 HTML5代码是有效的。我们应该使用 HTML5的 JSAPIdocument.querySelector
通过其自定义数据属性来查找这个锚元素。但事实是,我得到了错误。
HTML5对 HTML5 JS API document.querySelector
的规范是否说明这种方法不能查找带有数值的 HTML5数据自定义属性?(需要一个 HTML5规范源代码。)