Javascript + Chrome,控制台在我检查之前找不到元素

标签 javascript html google-chrome dom element

我正在尝试编辑元素的输入值。我 100% 确定它已加载到 DOM 中。但是,当我在控制台中弄乱它时,在我检查它之前它找不到该元素。通过 token 名称属性,发生了一些事情。但是因为 inspect 似乎将它“转换”为能够被发现,所以肯定有一种方法可以自动完成吗?

有问题的代码:https://jsfiddle.net/h8oyLdv4/1/

如果我在控制台中输入 $('input'),它会返回 null。如果我检查任何表格,它会返回

<input class="FORMshrt2" name="fd_co_firstname" type="text" maxlength="100" value="">

此外,document.querySelector('input') 返回

<input type="hidden" name="csrfmiddlewaretoken" value="XXbWi2ygjOsJ8igaEa9MvFb5Nm7xznOD">

但是一旦我检查了元素,它就会返回

<input class="FORMshrt2" name="fd_co_firstname" type="text" maxlength="100" value="">

最佳答案

csrfmiddlewaretoken 来看,您显然是在 jsFiddle 上执行此操作。

问题是控制台开始附加到主窗口,其中 $ 是一个函数,它是 getElementById 的快捷方式(覆盖 Chrome 控制台的内置 $,这是querySelectorAll的快捷方式)。由于不存在具有 id input 的元素,因此 $('input') 返回 null。由于 jsFiddle 主窗口上的第一个 inputcsrfmiddlewaretoken 输入,querySelector 会找到那个 input

但是,如果您右键单击并检查结果框架中的一个元素,控制台就会连接到该框架,其中包含您的 input 元素和您的脚本等,所以(取决于脚本中的内容) $ 是 Chrome 控制台的默认 $ 或 jQuery 或您加载的任何其他内容,并且因为您的内容在那里,所以您可以在使用时找到它$querySelector

关于Javascript + Chrome,控制台在我检查之前找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44018019/

相关文章:

javascript - 为什么 sort() JavaScript 函数在 Firefox 中有效,但在 Chromium 中无效?

css - 为什么我的 css 网格在 Chrome 中不工作(在所有其他浏览器中工作)

javascript - for in 循环只使用最后一个属性

javascript - Rails + Ajax : destroy. js.erb 渲染成功,但 div(具有特定 id)未被删除

javascript - 根据窗口大小调整 HTML 中的 SVG 图像大小

php - 使用 JavaScript、PHP 和 MySQL 时,我在哪里设置字符集

javascript - 如何成功地将filemanager集成到tinyMCE中?

javascript - 取消选择 <select> 中的顶部选项 - bootstrap multiselect

java - 带有 GWT 的 HTML(不是文本)的多行省略号

google-chrome - 保持 Chrome 在 headless 模式下运行