我的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;
在这里,我将相对于输入复选框的内容(即abc,xyz,pqr)和标记(20,15,30)复制到另一个div中。而我试图将相应的标记总和复制到第三个div中(即总数),它是一个字符串。我在复选框活动期间获得201530的价值。 我在这里缺少什么?
答案 0 :(得分:1)
您可以使用map
和变量total
来获取总数:
$(":checkbox:checked").map(function() {
total+=parseFloat($(this).attr('data-marks'));
})
将总计追加到#total
:
$('#total').text(total);
希望这有帮助。
$(":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;