如何生成值的总和

时间:2016-12-19 18:05:05

标签: jquery

我的HTML代码:



$(":checkbox").change(function() {				
  var arr = $(":checkbox:checked").map(function() { 
    return $(this).next().text(); 
  }).get();

  var myVal = $(":checkbox:checked").map(function() { 
    return ($(this).attr('data-marks'));
  }).get();

  var myPoint = $(":checkbox:checked").map(function() { 
    var sum = 0;
    var count = parseFloat($(this).attr('data-marks'));
    sum = sum + count;
    return sum;
  }).get();

  $("#myDiv, #myTop").html(arr.join('<br><br>'));
  $('#myVal').html(myVal.join('<br><br>'));
  $('#totalGrade').text(myPoint);	
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li><input id="c1" data-marks="20" type="checkbox" /><label for="c1">abc</label></li>
<li><input id="c1" data-marks="15" type="checkbox" /><label for="c1">xyz</label></li>
<li><input id="c1" data-marks="30" type="checkbox" /><label for="c1">pqr</label></li>

<div id="myDiv"></div>
<div id="myMarks"></div>
<div id="total"></div>
&#13;
&#13;
&#13;                 

在这里,我将相对于输入复选框的内容(即abc,xyz,pqr)和标记(20,15,30)复制到另一个div中。而我试图将相应的标记总和复制到第三个div中(即总数),它是一个字符串。我在复选框活动期间获得201530的价值。  我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可以使用map和变量total来获取总数:

$(":checkbox:checked").map(function() { 
    total+=parseFloat($(this).attr('data-marks'));
})

将总计追加到#total

$('#total').text(total); 

希望这有帮助。

&#13;
&#13;
$(":checkbox").change(function() {    
  var total=0;

  var arr = $(":checkbox:checked").map(function() { 
    return $(this).next().text(); 
  }).get();

  $(":checkbox:checked").map(function() { 
    total+=parseFloat($(this).attr('data-marks'));
  })

  $("#myDiv, #myTop").html(arr.join('<br><br>'));
  $('#total').text(total); 
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li><input id="c1" data-marks="20" type="checkbox" /><label for="c1">abc</label></li>
<li><input id="c1" data-marks="15" type="checkbox" /><label for="c1">xyz</label></li>
<li><input id="c1" data-marks="30" type="checkbox" /><label for="c1">pqr</label></li>

<div id="myDiv"></div>
<div id="myMarks"></div>
<div id="total"></div>

<div id="myVal"></div>
<div id="totalGrade"></div>
&#13;
&#13;
&#13;