通过ID循环获取元素

时间:2014-10-29 04:05:16

标签: javascript

我对javascript很新,我试图循环变量将id增加到60.我有一个用户输入数字的表单然后我需要它来添加它们。这是我到目前为止所做的。

<input type="text" onkeyup="addNumbers()" id="name1">
<input type="text" onkeyup="addNumbers()" id="name2">
<input type="text" onkeyup="addNumbers()" id="name3">
etc..
<input type="text" id="total" disabled>

function addNumbers(){

    var name = []

    for( var i = 0; i < 60; i++ ) {
        name[i] = parseInt( document.getElementById("name" + i).value );
    }

 var total = document.getElementById('total').value = var;


}
</script>

我没有从上面的代码中获得任何输出,所以我不确定我在这里做错了什么。

4 个答案:

答案 0 :(得分:1)

试试这个。您必须从索引1迭代到60并找到每个输入框的值。如果值有效,请找到sum并分配给total。 JSFiddle

addNumbers = function(el){
    var total = 0;
    for( var i = 1; i <= 60; i++ ) {
        var val = parseInt(document.getElementById("name" + i).value);
        if(val>0){
           total += val;
        }        
    }
    document.getElementById('total').value = total;
}

答案 1 :(得分:0)

    var total = 0;
    for( var i = 0; i < 60; i++ ) {
        total += parseInt( document.getElementById("name" + i).value );
    }

    document.getElementById('total').value = total;

试试这个。您当前的代码是关闭的,但您使用的数组使事情变得复杂。您还要将var分配给无效的元素。

答案 2 :(得分:0)

最好的方法是添加一个类。然后按类名获取元素。这将为您提供一系列输入元素。然后,您可以轻松遍历列表以获取输入项的值并将它们添加到一起。最好这样做,所以你没有硬编码输入的数量:)

答案 3 :(得分:0)

是啊..得到它..你应该传递d​​om元素的输入文本框中的值,如... onclick="return functionname(this.value)",并使用休息,因为它在javascript函数中作为TGH回答。