今天做task的时候遇到了一个问题:
如下两段代码:
$(document).ready(function(){
for(var n=a;a>0;a--){
$(".main").prepend('<div class="xx">第'+n+'天</div>')
}
})
与
for(var n=a;a>0;a--){
$(document).ready(function(){
$(".main").prepend('<div class="xx">第'+n+'天</div>')
})
}
但是只有第一个才是我想要的结果,第二个的时候他循环会把上一个的结果覆盖掉。
但是如果我把 $(document).ready(funcion(){})去掉也可以正常循环。
$(document).ready(function(){ 是指在页面dom树加载完毕后再执行里面的代码,这样能保证js代码正常运行。如果js代码先于页面加载执行,就会出错。
“如果你想要一个事件运行在你的页面上,你必须在$(document).ready()里调用这个事件。所有包括在$(document).ready()里面的元素或事件都将会在DOM完成加载之后立即加载,并且在页面内容加载之前”
一般情况先一个页面响应加载的顺序是:域名解析-加载html-加载js和css-加载图片等其他信息。
那么Dom Ready应该在“加载js和css”和“加载图片等其他信息”之间,就可以操作Dom了