js querySelectorAll不是有效的选择器,尽管它类似于docs示例

时间:2018-10-05 21:42:39

标签: javascript google-chrome-extension tampermonkey

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

此处,属性选择器用于返回ID为“ userlist”且具有“ data-active”属性值为“ 1”的列表中包含的列表项的列表。

var container = document.querySelector("#userlist");
var matches = container.querySelectorAll("li[data-active=1]");

但是当我尝试

var matches = document.querySelectorAll('div[data-id=7821549]');

我得到:

DOMException: Failed to execute 'querySelectorAll' on 'Document': 'div[data-id=7821549]' is not a valid selector.

这是我试图获得的div:

<div class="cell cell--event-list cell--odds js-event js-event-odds js-event-odds-7821549 js-event-status-finished" data-id="7821549">

1 个答案:

答案 0 :(得分:2)

示例选择器"li[data-active=1]"在我的Chromium浏览器上引发了类似的错误,因为属性选择器值为数字。即使是有效的HTML5 ID do not work with querySelector method的简单数字ID选择器(例如#22)。

用引号将属性选择器的值引起来可解决以下问题:'div[data-id="7821549"]'