javascript.当包含在函数中时,我的for循环在一次迭代后停止
javascript. my for loop stops after one iteration when enclosed in a function
我的问题是。当我的代码嵌入到html页面中,在正文标记之间,它按照假定的方式执行:显示12行文本(for循环执行12次);
但是,当我将代码包含在函数中,从外部js文件导入它,并尝试用onclick或onsubmit事件调用它时,它在第一次迭代后停止。
这是嵌入在HTML文件中的代码:
var all_imgs = document.getElementsByTagName('img');
for(var i=0; i<all_imgs.length; i++){
var item = all_imgs[i].src;
var item_limit = item.length-4;
var item_limit2 = item.length-6;
var selected = item.substring(item_limit, item_limit2);
if (selected == 'on') {
document.write('image ' + i + ' with url : ' + item + ' is ');
document.write('chosen');
document.write('<br>');
}
else {
document.write('image ' + i + ' with url : ' + item + ' is ');
document.write('not chosen');
document.write('<br>');
}
}
和输出:
image 0 with url : www.../thumb2_on.jpg is CHOSEN
image 1 with url : www.../thumb2_off.jpg is NOT CHOSEN
image 2 with url : www.../thumb2_off.jpg is NOT CHOSEN
image 3 ...
.
.
.
image 11 with url : www.../thumb2_on.jpg is CHOSEN
这是来自外部js文件的代码:
function selectedImages(){
var all_imgs = document.getElementsByTagName('img');
for(var i=0; i<all_imgs.length; i++){
var item = all_imgs[i].src;
var item_limit = item.length-4;
var item_limit2 = item.length-6;
//document.write(item_limit);
//document.write(item_limit2);
var selected = item.substring(item_limit, item_limit2);
if (selected == 'on') {
document.write('image ' + i + ' with url : ' + item + ' is ');
document.write('chosen');
document.write('<br>');
}
else {
document.write('image ' + i + ' with url : ' + item + ' is ');
document.write('not chosen');
document.write('<br>');
}
}
}
从HTML文件中的onclick事件:
<a href="#" onclick="javascript:selectedImages();">test</a>
或
<form action="#" method="post" onsubmit="javascript:selectedImages();">
和打印输出:
image 0 with url: www.../thumb2_on.jpg is CHOSEN
这是因为您在页面加载后使用document.write
。它将用新内容替换当前页面,因此当循环进行第二次迭代时,页面中不再有任何图像。
相关文章:
- 当接收到AJAX内容时,每次$.的下一次迭代
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- 异步mongodb更新循环中最后一次迭代后的重定向
- 如何在当前迭代中获得下一次迭代的值
- 如何重新构建此 for 循环,以便在异步 api 调用完成之前不会进行下一次迭代
- 变量在循环的最后一次迭代中变为未定义
- 对于下一次迭代之前的循环延迟
- 为什么这个简单的.js在一次迭代后循环停止
- 在使用 CasperJS 遍历参数化 URL 时,仅执行最后一次迭代
- 每次单击一次迭代两个数组并制作动画
- Javascript/Angularjs :等待承诺实现,然后再进入foreach Loop中的下一次迭代
- JSTL:如何获取Map的上一次和下一次迭代元素
- 在下一次迭代之前暂停对JSON对象进行迭代
- 如何知道回调循环的哪一次迭代以及何时执行
- Javascript-只用于循环打印最后一次迭代
- 获取jquery each中的最后一次迭代
- 只进行最后一次迭代的循环内函数调用
- 在第一个数组的下一次迭代之前,遍历一个数组并连接另一个数组的所有值
- 在for循环的每一次迭代中都会计算.length属性
- jQuery - 如何滚动浏览子类 addclass 然后在一次迭代中删除类 setTimout 不起作用