Javascript 我想在选中某些复选框时增加一个值
如果选中一个或多个复选框,我想提高价格。这是我的代码,但它不工作 HTML 当您在顶部变量a=0上初始化变量“a”时,它处于全局范围内;如果你想使用它,你可以直接做a=a+1 当您再次将其声明为check函数内的var时,它现在是一个新变量“a”,作为新变量绑定到check函数范围,并且它不引用在顶部声明的变量 因此,解决方案是删除声明变量,并直接将其用作a=a+1内部检查函数 您还需要检查复选框是否已选中: 这是一个正在工作的Javascript 我想在选中某些复选框时增加一个值,javascript,html,Javascript,Html,如果选中一个或多个复选框,我想提高价格。这是我的代码,但它不工作 HTML 当您在顶部变量a=0上初始化变量“a”时,它处于全局范围内;如果你想使用它,你可以直接做a=a+1 当您再次将其声明为check函数内的var时,它现在是一个新变量“a”,作为新变量绑定到check函数范围,并且它不引用在顶部声明的变量 因此,解决方案是删除声明变量,并直接将其用作a=a+1内部检查函数 您还需要检查复选框是否已选中: 这是一个正在工作的fiddle:当您在顶部变量a=0上初始化变量“a”时,它处于全局范
fiddle
:当您在顶部变量a=0上初始化变量“a”时,它处于全局范围内;如果你想使用它,你可以直接做a=a+1
当您再次将其声明为check函数内的var时,它现在是一个新变量“a”,作为新变量绑定到check函数范围,并且它不引用在顶部声明的变量
因此,解决方案是删除声明变量,并直接将其用作a=a+1内部检查函数
您还需要检查复选框是否已选中:
这是一个正在工作的
fiddle
:您已经在check函数中定义了a变量的范围,并且在没有正确的“this”的情况下调用了函数check
这应该行得通
var a = 0;
window.onload = function() {
var input = document.querySelector('input[type=checkbox]');
function check() {
a = a + parseInt(this.value, 10);
document.getElementById('result').innerHTML = 'result ' + a;
}
input.onchange = check;
input.onchange();
}
您已经在check函数中确定了a变量的作用域,并且在没有正确的“this”的情况下调用了函数check 这应该行得通
var a = 0;
window.onload = function() {
var input = document.querySelector('input[type=checkbox]');
function check() {
a = a + parseInt(this.value, 10);
document.getElementById('result').innerHTML = 'result ' + a;
}
input.onchange = check;
input.onchange();
}
有几件事不对 首先,
querySelector
将只返回与选择器匹配的第一个元素,如果您想获取所有复选框,则必须使用querySelector all
其次,您使用的是var a=a+值
如果要将值
添加到全局变量a
的上一个值,则应使用a=a+值
,通过使用var a=…
在当前上下文中声明一个新变量a
第三,没有变量value
,如果您试图获取单击元素的值,请使用event.currentTarget.value
var checkbox=Array.from(document.querySelectorAll(“输入[type='checkbox']”);
var result=document.querySelector(“结果”);
复选框。forEach(函数(复选框){
checkbox.onchange=函数(){
var total=复选框。减少(函数(a,c){
返回a+(c.checked?parseInt(c.value):0);
}, 0);
result.textContent=“result”+总计;
}
});代码>
复选框
复选框2
复选框3
结果0
有几件事不对
首先,querySelector
将只返回与选择器匹配的第一个元素,如果您想获取所有复选框,则必须使用querySelector all
其次,您使用的是var a=a+值
如果要将值
添加到全局变量a
的上一个值,则应使用a=a+值
,通过使用var a=…
在当前上下文中声明一个新变量a
第三,没有变量value
,如果您试图获取单击元素的值,请使用event.currentTarget.value
var checkbox=Array.from(document.querySelectorAll(“输入[type='checkbox']”);
var result=document.querySelector(“结果”);
复选框。forEach(函数(复选框){
checkbox.onchange=函数(){
var total=复选框。减少(函数(a,c){
返回a+(c.checked?parseInt(c.value):0);
}, 0);
result.textContent=“result”+总计;
}
});代码>
复选框
复选框2
复选框3
结果0
尝试更改var a=a+值代码>至a=a+值代码>不起作用尝试更改var a=a+值代码>至a=a+值代码>它不工作
var a = 0;
window.onload = function() {
var input = document.querySelector('input[type=checkbox]');
function check() {
a = a + parseInt(this.value, 10);
document.getElementById('result').innerHTML = 'result ' + a;
}
input.onchange = check;
input.onchange();
}