循环函数的javascript
javascript for loop function
我有这个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>
这个脚本.js
function image(){
for(var i = 1; i < document.images.length; i++)
{
document.write(i);
}
当我点击第一张图片时,屏幕上只显示了数字1,浏览器陷入了思考。
为什么不显示123?
循环不工作的原因是因为第一次调用
document.write
它将从页面中删除所有图像,从而将document.images节点列表的长度减少到零。
如果你想看到1234,而不是使用document.write(正如戴所指出的,这无论如何都是不推荐的(使用:
document.body.innerHTML += i;
此外,正如戴正确指出的,第一个数组索引是0而不是1,所以for循环应该如下所示:
for(var i = 0; i < document.images.length; i++)
{
document.body.innerHTML += i;
}
注意:var i=0;
数组索引从ECMAscript中的0
开始,而不是从1
开始,您需要将循环重写为:
for(var i=0;i<document.images.length;i++) {
}
请注意,document.write
现在被认为是一种糟糕的做法,因为它会在浏览器的DOM和布局引擎中引发大量繁重的工作。请改用document.createElement
。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别