通过ID循环获取元素



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

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

试试这个。您必须从索引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;
}

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

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

试试这个。您当前的代码很接近,但您使用的数组使事情变得复杂。此外,您正在将var分配给无效的元素。

是的。。得到了..你应该在像..这样的dom元素上传递来自输入文本框的值。。onclick="return functionname(this.value)",并在javascript函数中按原样使用rest作为TGH的应答。

最新更新