Javascript 三个复选框的if语句

Javascript 三个复选框的if语句,javascript,Javascript,我最近在大学开始使用javascript,现在有点麻烦。我不包括我的代码在这里,因为我不希望它为我写我只是需要一些指向正确的方向 因此,我有三个复选框,每个都有不同的值,我需要将所选框的值相加。我知道怎么做,但我做这件事的方式似乎有点冗长,我相信有更好的方法 目前我有一个if语句,检查是否选择了box1 box2和box3,如果选择了它们,则添加它们,否则如果选择了box1和box2,则添加它们,否则如果选择了box1和box2,则添加它们,依此类推 所以基本上我会检查每一个可以选择的框的组合,

我最近在大学开始使用javascript,现在有点麻烦。我不包括我的代码在这里,因为我不希望它为我写我只是需要一些指向正确的方向

因此,我有三个复选框,每个都有不同的值,我需要将所选框的值相加。我知道怎么做,但我做这件事的方式似乎有点冗长,我相信有更好的方法

目前我有一个if语句,检查是否选择了box1 box2和box3,如果选择了它们,则添加它们,否则如果选择了box1和box2,则添加它们,否则如果选择了box1和box2,则添加它们,依此类推


所以基本上我会检查每一个可以选择的框的组合,一次一个。必须有一个更有效的方法来实现这一点,所以任何提示都将受到赞赏。提前感谢您的帮助

假设您的HTML类似于以下内容:

<input name="demo" type="checkbox" checked value="1" />
<input name="demo" type="checkbox" value="2" />
<input name="demo" type="checkbox" checked value="3" />

参考资料:


使用一个
+=
和一个简单的三元运算符:

var total = 0;
total += document.getElementById('cb1').checked ? parseInt(document.getElementById('cb1').value, 10) : 0;
total += document.getElementById('cb2').checked ? parseInt(document.getElementById('cb2').value, 10) : 0;
total += document.getElementById('cb3').checked ? parseInt(document.getElementById('cb3').value, 10) : 0;
alert(total);
我应披露如下内容:

var total2 = 0;
if (document.getElementById('cb1').checked) total2 += parseInt(document.getElementById('cb1').value, 10);
if (document.getElementById('cb2').checked) total2 += parseInt(document.getElementById('cb2').value, 10);
if (document.getElementById('cb3').checked) total2 += parseInt(document.getElementById('cb3').value, 10);
alert(total2);
HTML示例:

<input id="cb1" type="checkbox" value="341" checked />
<input id="cb2" type="checkbox" value="242" />
<input id="cb3" type="checkbox" value="345" checked  />


您询问过助教吗?代码会很有帮助,但我认为在这种情况下不需要。如果需要,您可以只使用所选元素的值,如果需要,可以不使用。您要求的是代码检查,这没有错。在这里试试:,因为这里我们更关注解决代码问题。你说的“添加”是什么意思?纯js或jquery还可以?不错,建议使用querySelectorAll,这样你就不必使用类型检查了。如果他在大学,他可能应该学习最新的技术。我同意,我在年编辑了这篇文章(在审阅了一篇建议的编辑文章之后,这篇文章让我慢了一两分钟)。
var total2 = 0;
if (document.getElementById('cb1').checked) total2 += parseInt(document.getElementById('cb1').value, 10);
if (document.getElementById('cb2').checked) total2 += parseInt(document.getElementById('cb2').value, 10);
if (document.getElementById('cb3').checked) total2 += parseInt(document.getElementById('cb3').value, 10);
alert(total2);
<input id="cb1" type="checkbox" value="341" checked />
<input id="cb2" type="checkbox" value="242" />
<input id="cb3" type="checkbox" value="345" checked  />