showPic(randomNumber());放在头部,相当于要执行showPic,这个时候body还没有载入。也就是<img id="img00" src="pic/0.gif">....这些图并不存在,在DOM树中还没有完全装载。因此它的执行是错误的。把第一句js改成:onload = function (){showPic(randomNumber());}这样就可以了,另外,img01.src...这样的方法建议改成document.getElementById("img01").src

解决方案 »

  1.   

    但是 在head部的时候 我把他放到 setInterval() 里面又可以啊document.getElementById("img01").src  这个我会注意的
      

  2.   

    setInterval()执行的时候已经把那些<img>载完了
    反正只要知道js是顺序执行的,必须保证要操作的对象已经存在就行了
      

  3.   

    <script defer>
    showPic(randomNumber());
    function randomNumber() {
    var intA = parseInt(Math.random()*10000);//产生一个随机数
    var strA=intA+"";//把这个整数转换成字符串
    switch(strA.length)//判断这个字符串的长度是否够4位,不够时补零
    {
    case 4:
    {break;}
    case 3:
    {strA="0"+strA;break;}
    case 2:
    {strA="00"+strA;break;}
    case 1:
    {strA="000"+strA;break;}
    default:
    {strA="0000";break;}
    }
    return strA;
    }function showPic(picnum) {
    img00.src="pic/"+picnum.charAt(0)+".gif";
    img01.src="pic/"+picnum.charAt(1)+".gif";
    img02.src="pic/"+picnum.charAt(2)+".gif";
    img03.src="pic/"+picnum.charAt(3)+".gif";
    }
    </script>
    </head>
    <body>
    <table>
    <tr>
    <td><img id="img00" src="pic/0.gif"></td>
    <td><img id="img01" src="pic/0.gif"></td>
    <td><img id="img02" src="pic/0.gif"></td>
    <td><img id="img03" src="pic/0.gif"></td>
    </tr>
    </table>
    </body>
    </html>
      

  4.   

    页面初始化后执行的代码要用defer 属性