Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用onclick和insert html total字段捕获所有下拉/选择元素值_Javascript - Fatal编程技术网

Javascript 使用onclick和insert html total字段捕获所有下拉/选择元素值

Javascript 使用onclick和insert html total字段捕获所有下拉/选择元素值,javascript,Javascript,我们使用的html测验应用程序不包含下拉列表/选择元素的总字段。我想插入一个html div total,它在使用单击捕获更改时捕获所有具有值的select元素。我在搜索时找到了解决方案的各个部分,但似乎无法将它们全部放在一起。我无法将eventlistener直接插入html 到目前为止我所拥有的。感觉我很接近,但接收x[i]未定义 var x = document.getElementsByTagName("select"); var i = 1; sum = 0; for (i; i &l

我们使用的html测验应用程序不包含下拉列表/选择元素的总字段。我想插入一个html div total,它在使用单击捕获更改时捕获所有具有值的select元素。我在搜索时找到了解决方案的各个部分,但似乎无法将它们全部放在一起。我无法将eventlistener直接插入html

到目前为止我所拥有的。感觉我很接近,但接收x[i]未定义

var x = document.getElementsByTagName("select");
var i = 1;
sum = 0;
for (i; i < x.length; i++) {
    x[i].addEventListener("click", function(){
    sum += Number(x[i].value);
});
}
var x=document.getElementsByTagName(“选择”);
var i=1;
总和=0;
对于(i;i
所有下拉列表都在同一重复类中:

<select class="qm_SELECT_sel"><option value=""></option>

您得到的x[i]是未定义的,因为click偶数与所有select元素绑定,但在i中触发click事件时,它总是传递最后一个有效的i 例如:如果您有3个下拉列表,则它将使用其中的3个单击事件,但在单击任何下拉列表时,它总是通过3

若要忽略此项,u必须将该事件绑定到saperate函数,并以这种方式将元素作为参数传递给该函数,以保持每个i的值

var x = document.getElementsByTagName("select");
var i = 1;
sum = 0;
for (i; i < x.length; i++) {
    bindSelectClick(x[i]);
}
function bindSelectClick(elem){
 elem.addEventListener("click", function(){
    sum += Number(elem.value);
 });
}
var x=document.getElementsByTagName(“选择”);
var i=1;
总和=0;
对于(i;i
根据您的评论,最终答案是


$('.qm\u SELECT\u sel').change(函数(){
var总和=0;
$('.qm_SELECT_sel option:selected')。每个(函数(){
sum=Number(sum)+Number($(this.val());
}); 
$('总计').val(总和);
});

选择1
1.
2.
选择2
1.
2.

将html代码添加到jQuery$('.qm_SELECT_sel').change(function(){$('.qm_SELECT_sel:selected').each(function(){sum+=$(this.val();});$('.input_field').val(sum);});这起作用了。脚本必须在页面的末尾。我猜尝试javascript会很痛苦。感谢更改值时/如果更改值,则不会减去该值。