JS中getElementById()获取的值为null

今天想写一个验证码发送功能,但发现alert弹出的值是null,不知道怎么回事,百度了两圈后发现问题了,之前没接触过JS,以为和JAVA一样,所以有点云里雾里。

<html>
<head>
<title></title>
<script type="text/javascript">
		//按钮对象, document.getElementById()
		var time = 120; //120秒内不可以点击按钮
		var btn = document.getElementById("btn");
	btn.onclick = function Onclick(){ 
        alert(btn)
		btn.disabled = true;//让按钮残废
		window.setInterval(Timewait,1000);
	}
		function Timewait(){
		if(time>=0){
			btn.value = "请" + time + "s后重新发送";
			time = time-1;
		}else{
			btn.value = "重新发送验证码" //按钮信息
			btn.disabled = false;//使按钮可以使用
			time = 120;
			clearInterval();//定时器停止计时
			}
		}
</script>
</head>
<body>
    <input type="button" id="btn" value="获取验证码" />

</body>
</html>

运行后btn值为null

原因:js的执行是从上到下的,js就会在一开始执行,而要获取的id还在后面!所以就获取到的是null了!

解决方法一:

将JS代码块放到 <input type="button" id="btn" onclick = "Onclick()" value="获取验证码" />后面,这样就先将"btn"传给了id

解决方法二:

window.οnlοad=function(){   //winow.onload 等全文加载后再运行此代码
… 
// 需要执行的代码 
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值