JavaScript:For-Loop不运行?

时间:2013-02-11 17:50:32

标签: javascript for-loop

为什么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低于element.length
  • 该功能正在运行
  • Countfield返回一个数字,如0,1,2,3 ......

这是函数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; 
}

3 个答案:

答案 0 :(得分:1)

@varunachar在他的一条评论中提到了这个问题:

  

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_fieldshttp://jsfiddle.net/D5ZHV/的作品 6 other_fieldshttp://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)