2014-10-29 182 views
0

我对javascript很陌生,我试图通过一个变量循环来将id增加到60.我有一个表单,用户输入数字然后我需要它来添加它们。这是我迄今为止所拥有的。通过ID循环获取元素

<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> 

我没有从上面的代码得到任何输出,所以我不知道我在这里做错了什么。

+2

'document.getElementById('total')。value = var;'你期望的“var”是什么?您还没有提出任何问题 – meagar 2014-10-29 04:07:13

+0

不能使用jQuery? – 2014-10-29 04:23:43

+0

@meagar,他问问题,看上面 – 2014-10-29 04:24:33

回答

1

试试这个。您必须从索引1迭代到60并查找每个输入框的值。如果值有效,找到总和并分配给总数。 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; 
} 
+0

这个解决方案对我来说最合适。谢谢。 – DollarChills 2014-10-29 04:45:13

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

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

试试这个。你目前的代码很接近,但是你正在使用一个使事情复杂化的数组。你也正在分配var到无效的元素。

0

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

0

是的..得到它..你应该通过输入文本框中的值像dom元素像.. onclick="return functionname(this.value)"和使用休息,因为它是在TGH回答的javascript函数中。