Javascript 使用onclick和insert html total字段捕获所有下拉/选择元素值
我们使用的html测验应用程序不包含下拉列表/选择元素的总字段。我想插入一个html div total,它在使用单击捕获更改时捕获所有具有值的select元素。我在搜索时找到了解决方案的各个部分,但似乎无法将它们全部放在一起。我无法将eventlistener直接插入html 到目前为止我所拥有的。感觉我很接近,但接收x[i]未定义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
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会很痛苦。感谢更改值时/如果更改值,则不会减去该值。