我的脑袋今天没想好。你们有人可以帮忙吗? =) 只需要计算第二列中检查的int值并总结提醒。
<table width="100%">
<tr><td>Product Name</td><td>Price $</td></tr>
<tr><td><input type="checkbox"> Product 1</td><td>200</td></tr>
<tr><td><input type="checkbox"> Product 2</td><td>300</td></tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('input').change(function() {
var sum = 0;
$("input:checked").each(function(){
sum += parseInt($("input:checked").closest('td').next().html());
});
alert(sum);
});
</script>
感谢。
答案 0 :(得分:4)
您似乎应该使用$(this)
中的.each()
来查找与循环中当前所选复选框最接近的<td>
。
// Bind to all checkboxes...
$('input[type="checkbox"]').change(function() {
var sum = 0;
$("input:checked").each(function(){
// Use $(this) here
sum += parseInt($(this).closest('td').next().html(), 10);
// Always use the optional radix to parseInt() -----^^^^^
});
alert(sum);
});
答案 1 :(得分:3)
试试这个:
$('input:checkbox').change(function() {
var sum = 0;
$("input:checked").each(function() {
sum += parseInt($(this).closest('td').next().text(), 10);
});
alert(sum);
});
您需要在所有复选框上收听change
事件,而不仅仅是那些:checked
。另外,请务必将radix
参数传递给parseInt
。最后,this
将引用each
函数中正在评估的项目。