document.querySelectorAll("body") 返回未定义

我在 firefox DevTools 的控制台中使用以下代码从https://bookauthority.org/books/best-problem-solving-books中提取书名


代码 1


var selects=document.querySelectorAll("div.book-header-title a.book-title h2.main");


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

  console.log (selects[i].innerText);

}

代码 2


var selects=document.querySelectorAll("div.book-header-title a.book-title h2.main");

console.log(selects)

即使下面的代码也不起作用


var selects=document.querySelectorAll("body");

console.log(selects)

它只说undefined。我能做些什么?


jeck猫
浏览 142回答 1
1回答

郎朗坤

querySelectorAll工作得很好。问题在于您正在执行代码的特定网页已经覆盖了该window.console.log方法,并且新实现显然不会像其本机实现那样将参数打印到控制台。你可以通过发出window.console.log(不带括号)来看到这一点,它通常会打印出类似的东西ƒ log() { [native code] }(至少在 Chrome 中)。有一些技巧可以获取本机实现。例如,请参阅这篇文章:https://stackoverflow.com/a/11129588/4005175例子:// restore window.console.log methodvar f = document.createElement("iframe");f.style.display = "none";document.documentElement.appendChild(f);window.console.log = f.contentWindow.console.log;// print book titlesvar selects=document.querySelectorAll("div.book-header-title a.book-title h2.main");for (i = 0; i < selects.length; ++i) {&nbsp; console.log (selects[i].innerText);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript