使用 XPath contains 和 querySelectorAll

Nei*_*eil 5 javascript xpath

我对 PHP 中的 XPath 非常熟悉,并且想在 JavaScript 中使用它,最终目标是制作一个扩展来帮助我做一些事情。

我有以下 XPath,它可以在 Chrome 上的开发工具中运行和测试:

//div[contains(@data-bt,'rank')]
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不适用于querySelectorAll。但以下情况确实如此:

document.querySelectorAll("div[data-bt]")
Run Code Online (Sandbox Code Playgroud)

我还注意到,//在 XPath 上使用似乎会引发错误,指出它不是有效的选择器。

Nei*_*eil 2

阅读有关querySelector. 我发现以下内容与我试图实现的 XPath 的效果相同。

x = document.querySelectorAll('div[data-bt*="rank"]');

for (var i = 0; i < x.length; i++) {

    json_str = x[i].getAttribute('data-bt');
    data = JSON.parse(json_str);
    console.log(data.id);

}
Run Code Online (Sandbox Code Playgroud)