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>
posted @ 2016-08-11 09:58  浅书流年  阅读(207)  评论(0编辑  收藏  举报