js代码执行顺序问题
这是一个关于js的基础问题
功能:用js将日期写到文本框中
代码1:
<script language="javascript"> window.onload=function(){ var cur = new Date(); var y = cur.getFullYear(); var m = cur.getMonth()+1; var d = cur.getDate(); document.getElementById("safd").value=y+"-"+m+"-"+d; } </script> <input id="safd" type="text" />
代码2
<script language="javascript"> var cur = new Date(); var y = cur.getFullYear(); var m = cur.getMonth()+1; var d = cur.getDate(); document.getElementById("safd").value=y+"-"+m+"-"+d; </script> <input id="safd" type="text" />
第一段代码文本框成功显示日期,第二段代码则不显示。
调试发现Uncaught TypeError: Cannot set property 'value' of null
原因时候因为window.onload使整个页面加载完毕再执行,所以成功将日期显示到文本框。而代码2执行的时候文本框还没有建立,所有报错,将代码2改为如下即可。
<input id="safd" type="text" /> <script language="javascript"> var cur = new Date(); var y = cur.getFullYear(); var m = cur.getMonth()+1; var d = cur.getDate(); document.getElementById("safd").value=y+"-"+m+"-"+d; </script>