因为你的
script标签上面的HTML定义,它作用于的元素,它无法找到他们,因为他们不为运行代码的时候存在。这是您页面中事物发生的顺序:
html
和head
创建的元素- 在
meta
创建元素及其含量注意到解析器 script
jQuery 的元素已创建- 解析器 停止 并等待jQuery文件加载
- 加载后,将执行jQuery文件
- 解析继续
script
您的代码的元素已创建- 解析器 停止 并等待文件加载
- 加载后,您的脚本代码将运行-并且找不到任何元素,因为还没有
div
元素 - 解析继续
- 浏览器完成了页面的解析和构建,包括创建您要在脚本中尝试访问的元素
纠正方法:
将
script
元素移到最末端,就在结束</body>
标记之前,因此所有元素在代码运行之前就存在。除非有充分的理由不这样做,通常这是最好的解决方案。使用jQuery的
ready
功能。使用script元素上的
defer
属性,但要注意,并非所有浏览器都支持该属性。
但同样,如果您控制脚本元素的位置,通常#1通常是最好的选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)