为了账号安全,请及时绑定邮箱和手机立即绑定

为什么把HTML DOM部分放在JS代码下面就不执行了,放在上面可以执行,是什么原因?顺序没搞懂

<h3>操作成功</h3>
<div><strong id="second">5</strong>秒后返回  </div>

<input type="button" value="返回" onClick="test()">
<script>
var sec=document.getElementById("second");
var i=5;
var timer=setInterval(function(){
i--;	
sec.innerHTML=i;	
if(i==1){
window.location.href="https://www.imooc.com";		
}},1000);

function test(){
history.forward();
}	

</script>


正在回答

2 回答

网页加载是从上至下

1 回复 有任何疑惑可以回复我~

一楼正解,这是学习js必定会碰见的坑,网页加载自上而下,遇见js就先将其编码了,可是如果你操作了DOM,这是的页面其实还没有出现,js就获取不到DOM节点,所以无效,这里一般js放在网页最下面,还有两种解决方案。

1、在js开头加上

window.onload = function(){你的内容}

2、jQuery写法

$(你的内容)//这个你得学习jQuery

3、在<script>标签中加上

defer(这IE支持,太坑不建议使用;其实我记得有个别的现在一时想不起来【请人指点】)


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么把HTML DOM部分放在JS代码下面就不执行了,放在上面可以执行,是什么原因?顺序没搞懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信