![]() |
1
2
你试图找到的元素不在 DOM 当你的脚本运行时。 依赖于DOM的脚本的位置可能对其行为产生深远的影响。浏览器从上到下分析HTML文档。元素被添加到DOM中,脚本(通常)在遇到它们时执行。 这意味着秩序很重要。 通常,脚本找不到稍后出现在标记中的元素,因为这些元素尚未添加到DOM中。
考虑以下标记;脚本1未能找到
那么,你应该怎么做?你有几个选择: 选项1:移动脚本将脚本进一步移到页面下方,就在结束正文标记之前。以这种方式组织,在执行脚本之前解析文档的其余部分:
注意:在底部放置脚本通常被认为是 best practice 。
选项2:jquery
|
|
2
0
简明扼要: 因为您要查找的元素尚不存在于文档中。
对于这个答案的其余部分,我将使用
可能的原因 元素可能不存在的原因有两个:
后一种情况很常见。浏览器从上到下分析和处理HTML。这意味着,对DOM元素的任何调用(在该DOM元素出现在HTML中之前发生)都将失败。 请考虑以下示例:
这个
JQuery 这同样适用于使用jquery的所有选择器。如果您 拼写错误 您的选择器或您正在尝试选择它们 在它们真正存在之前 。 如果找不到jquery,则会出现一个附加的扭曲,因为您已经加载了没有协议的脚本,并且正在从文件系统运行:
此语法用于允许脚本通过https在协议为https://的页面上加载,以及在协议为http://的页面上加载http版本。/
它具有尝试加载和失败加载的不幸副作用
解决
在你打电话给
这可以通过简单地将您的javascript 之后 对应的dom元素
在这种情况下,您也可以将代码放在结束体标记之前(
其他解决方案包括
例子:
请看 articles at quirksmode.org 有关事件处理和浏览器差异的详细信息。 JQuery
首先确保jquery加载正确。
Use the browser's developer tools
找出是否找到jquery文件,如果没有找到,则更正URL(例如,添加
倾听
事实上, jQuery tutorial 明确说明:
或者,您也可以使用速记语法:
两者都是等效的。 |