2014-10-29 179 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函數中。