循环函数的javascript

循环函数的javascript,javascript,function,for-loop,Javascript,Function,For Loop,我有这个index.html <html> <head> <script type="text/javascript" src="scripts.js" > </script> </head> <body> <center><h1>Images</h1></center> <center> <img id="b1" onclick="

我有这个index.html

<html>
<head>
      <script type="text/javascript" src="scripts.js" > </script>  
</head>
<body>
<center><h1>Images</h1></center>
<center> 
    <img id="b1" onclick="image()" src="1.jpg">
    <img id="b2" onclick="image()" src="2.jpg">
    <img id="b3" onclick="image()" src="3.jpg">    
    <img id="b4" onclick="image()" src="4.jpg">    
</center> 

</body>
</html>

图像
这是scripts.js

function image(){

    for(var i = 1; i < document.images.length; i++)
    {
            document.write(i);
    }
函数图像(){
对于(var i=1;i
当我点击第一张图片时,它只是在屏幕上显示数字1,浏览器陷入思考


为什么不显示123?

数组索引从ECMAscript中的
0
开始,而不是
1
,您需要重写循环,如下所示:

for(var i=0;i<document.images.length;i++) {

}

for(var i=0;i循环不工作的原因是第一次调用

document.write
它将从页面中删除所有图像,从而将document.images节点列表的长度减少到零

如果要查看1234,请使用以下命令,而不是使用document.write(正如Dai所指出的,document.write已被弃用):

此外,正如Dai正确指出的,第一个数组索引是0而不是1,因此for循环应如下所示:

for(var i = 0; i < document.images.length; i++)
{
        document.body.innerHTML += i;
}
for(var i=0;i
注意:var i=0;

注意
在HTML5和
文档中已经过时。写入
被认为是不好的做法。ECMAscript中的数组也从
0
开始,而不是
1
for(var i = 0; i < document.images.length; i++)
{
        document.body.innerHTML += i;
}