为什么for循环不运行?
countfiles
返回整数parseInt(countfiles())
也无法正常工作这是我的代码:
function set_default_value() {
var element = document.getElementsByName('fields');
for (var i = countfields(); i < element.length; ++i) {
element[i].value = "default";
}
}
为什么不运行?
修改
这是函数countfields
function countfields() {
var field_counter = 0;
for (var i = 0; i < 50; i++) {
if (typeof document.getElementsByName('other_fields')[i] != "undefined") {
var field_counter = field_counter + 1;
}
}
return field_counter;
}
答案 0 :(得分:1)
The number returned by countfields could be greater than element.length
在这一行:
for (var i = countfields(); i < element.length; ++i)
只要i < element.length
小于i
,就可以将此element.length
作为“阅读,”做东西“。或者,如果countfields()
等于或大于等于,则没有任何反应。
1 other_fields
:http://jsfiddle.net/D5ZHV/的作品
6 other_fields
:http://jsfiddle.net/Ay6BN/ 不工作
答案 1 :(得分:0)
更改
var field_counter = field_counter + 1;
要
field_counter = field_counter + 1;
在countfields()
函数中。您在for循环中声明field_counter
是错误的
答案 2 :(得分:0)
function countfields() {
var field_counter = 0;
for(var i = 0; i < 50; i++) {
if(typeof document.getElementsByName('other_fields')[i] != "undefined") {
var field_counter = field_counter + 1; } }
return field_counter; }
var始终定义变量的范围。
在if var field_counter
内部将在if语句中创建一个带范围的变量。
你应该写为
field_counter = field_counter + 1;
如果你测试你的countfields(),它应该总是返回0;
还可以尝试console.log(elements)