为什么普通javascript不需要$(document).ready像jQuery一样?
在完成JavaScript课程后,我目前正在学习jQuery。文档中说,为什么普通javascript不需要$(document).ready像jQuery一样?,javascript,jquery,Javascript,Jquery,在完成JavaScript课程后,我目前正在学习jQuery。文档中说,ready方法等待DOM完成加载。然而,我有两点很好奇。 1) 由于脚本标记通常添加在body标记的末尾,因此如果没有ready方法,DOM不应该已经完成加载吗。 2) 如果我们需要jQuery中的ready方法,为什么在编写普通JavaScript时也不需要它呢?1)由于脚本标记通常添加在body标记的末尾,没有ready方法DOM不应该已经完成加载了吗 是的,您是对的,如果在正文末尾添加了脚本标记,则不需要使用$(doc
ready
方法等待DOM完成加载。然而,我有两点很好奇。
1) 由于脚本标记通常添加在body标记的末尾,因此如果没有ready
方法,DOM不应该已经完成加载吗。
2) 如果我们需要jQuery中的ready
方法,为什么在编写普通JavaScript时也不需要它呢?1)由于脚本标记通常添加在body标记的末尾,没有ready方法DOM不应该已经完成加载了吗
是的,您是对的,如果在正文末尾添加了脚本标记,则不需要使用$(document).ready()
包装代码,因为DOM元素已经可以在代码中使用
2)如果我们需要jQuery中的ready方法,为什么在编写普通JavaScript时也不需要它呢?
jQuery等价于$(document).ready()
是
DOMContentLoaded事件在初始HTML文档完全加载和解析后激发,而不等待样式表、图像和子帧完成加载
请注意:您也可以使用defer
属性
此布尔属性设置为向浏览器指示脚本将在解析文档之后、但在触发DOMContentLoaded之前执行
可能重复吹毛求疵,在解析所有DOM之后,但在触发DOMContentLoaded之前,将执行具有
defer
属性的脚本。因此,如果您在页面底部的内联脚本中,并且需要触发一些延迟脚本,那么您仍然必须等待DOMContentLoaded。@kaido,你说得对……在更新的答案中提到:)