我试图在多个部分中找到输入值的总和.我把我的代码放在下面.
HTML:
<div class="section"> <input type="radio" name="q1" value="2"/> <input type="radio" name="q2" value="0"/> <input type="radio" name="q3" value="1"/> <input type="radio" name="q4" value="3"/> </div>
jQuery:
$('.section').each(function(){ var totalPoints = 0; $(this).find('input').each(function(){ totalPoints += $(this).val(); }); alert(totalPoints); });
请注意,这是我实际使用的代码的简化版本.所以我想要提醒2值(每个部分的总和):8然后6.而是我只是得到一个字符串的所有值.所以第一节提醒0143.
任何想法我如何得到一个累积和而不是一个字符串?
解决方法
你正在做“1”“1”,期望它是2(int)
不是这样.
$('.section').each(function(){ var totalPoints = 0; $(this).find('input').each(function(){ totalPoints += parseInt($(this).val()); //<==== a catch in here !! read below }); alert(totalPoints); });
抓住?为什么
回答:
你应该总是使用基数,如果你没有,领先的零是八进制的!
parseInt("010") //8 ( ff) parseInt("010") //10 ( chrome) parseInt("010",10) //10 ( ff) parseInt("010",10) //10 ( chrome)
好….你得到的想法.供应基!
编辑
最终解决方案(使用.each(function(index,Element)))
$('.section').each(function(){ var totalPoints = 0; $(this).find('input').each(function(i,n){ totalPoints += parseInt($(n).val(),10); }); alert(totalPoints); });