jquery计算复选复选框旁边的html值

时间:2011-12-20 03:34:12

标签: javascript jquery

我的脑袋今天没想好。你们有人可以帮忙吗? =) 只需要计算第二列中检查的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>

感谢。

2 个答案:

答案 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函数中正在评估的项目。

示例: http://jsfiddle.net/38AeT/