具有多个输入名称的getElementsByName

时间:2014-02-23 20:45:28

标签: javascript

我正在为我做一些自动和输入计算器,但我有问题,因为我不知道如何选择具有不同名称的多个输入。我知道我可以使用'输入'而不是确切的名字,但我需要为5-6输入进行计算而不是全部,所以请帮我这样做..

代码现在看起来像这样:

<script type="text/javascript">
function findTotal(){
    var arr = document.getElementsByName('test1');
    var tot=0;
    for(var i=0;i<arr.length;i++){
        if(parseInt(arr[i].value))
            tot += parseInt(arr[i].value);
    }
    document.getElementById('total').value = tot;
}
</script>

所以我想准确计算test1,test2,test3,test4,test5输入。

由于

1 个答案:

答案 0 :(得分:6)

您可以将多个attribute selectorsquerySelectorAll()一起使用:

var arr = document.querySelectorAll('[name="test1"], [name="test2"], [name="test3"], [name="test4"], [name="test5"]');

但是,如果他们共享一个共同的class名称,您可以select them by that

<input name="test1" class="totaled">
<input name="test2" class="totaled">
<!-- etc. -->
var arr = document.querySelectorAll('.totaled');

或者,如果他们共享一个共同的父元素,您可以find them from it

<div id="the-parent">
    <input name="test1">
    <input name="test2">
    <!-- etc. -->
</div>
var arr = document.querySelectorAll('#the-parent input');

// or
var arr = document.getElementById('the-parent').getElementsByTagName('input');