为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

jeck猫 2023-03-24 15:14:37
我在 firefox DevTools 的控制台中使用以下代码从https://bookauthority.org/books/best-problem-solving-books中提取书名代码 1var selects=document.querySelectorAll("div.book-header-title a.book-title h2.main");for (i = 0; i < selects.length; ++i) {  console.log (selects[i].innerText);}代码 2var selects=document.querySelectorAll("div.book-header-title a.book-title h2.main");console.log(selects)即使下面的代码也不起作用var selects=document.querySelectorAll("body");console.log(selects)它只说undefined。我能做些什么?
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

querySelectorAll工作得很好。问题在于您正在执行代码的特定网页已经覆盖了该window.console.log方法,并且新实现显然不会像其本机实现那样将参数打印到控制台。


你可以通过发出window.console.log(不带括号)来看到这一点,它通常会打印出类似的东西ƒ log() { [native code] }(至少在 Chrome 中)。


有一些技巧可以获取本机实现。例如,请参阅这篇文章:https://stackoverflow.com/a/11129588/4005175


例子:


// restore window.console.log method

var f = document.createElement("iframe");

f.style.display = "none";

document.documentElement.appendChild(f);

window.console.log = f.contentWindow.console.log;


// print book titles

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);

}


查看完整回答
反对 回复 2023-03-24
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信