Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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/9/java/319.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 我想在选中某些复选框时增加一个值_Javascript_Html - Fatal编程技术网

Javascript 我想在选中某些复选框时增加一个值

Javascript 我想在选中某些复选框时增加一个值,javascript,html,Javascript,Html,如果选中一个或多个复选框,我想提高价格。这是我的代码,但它不工作 HTML 当您在顶部变量a=0上初始化变量“a”时,它处于全局范围内;如果你想使用它,你可以直接做a=a+1 当您再次将其声明为check函数内的var时,它现在是一个新变量“a”,作为新变量绑定到check函数范围,并且它不引用在顶部声明的变量 因此,解决方案是删除声明变量,并直接将其用作a=a+1内部检查函数 您还需要检查复选框是否已选中: 这是一个正在工作的fiddle:当您在顶部变量a=0上初始化变量“a”时,它处于全局范

如果选中一个或多个复选框,我想提高价格。这是我的代码,但它不工作

HTML

当您在顶部变量a=0上初始化变量“a”时,它处于全局范围内;如果你想使用它,你可以直接做a=a+1

当您再次将其声明为check函数内的var时,它现在是一个新变量“a”,作为新变量绑定到check函数范围,并且它不引用在顶部声明的变量

因此,解决方案是删除声明变量,并直接将其用作a=a+1内部检查函数

您还需要检查复选框是否已选中:

这是一个正在工作的
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(); 
}