选中所有例程以调用另一个函数

时间:2011-03-31 04:19:46

标签: javascript jquery checkbox

使用以下代码,特别是checkAll例程,我不确定如何进行调用 我调用/取消选中的每一行的setCBCollection javascript函数 checkAll进程,例如打印值123。

我基本上需要为每个选中的行调用我的setCBCollection(cb)函数,但不确定如何进行。

任何帮助都会很棒。

感谢。

<tr>
<th id=" " class="t12subheader">
<input id="checkAll" type="checkbox">
</th>
</tr>

<tr>
  <td class="t12datavalue" align="center" style=""><input type="checkbox" value="123" name="f01"></td>
  <td class="t12datavalue" style="">123</td>
  <td class="t12datavalue" style="">333</td>
  <td class="t12datavalue" style="">Alex</td>
  <td class="t12datavalue" style="">Smith</td>
</tr>


<script language="javascript" type="text/javascript">
  $(document).ready(function() {
  $("#checkAll").click(function() {
    var self = $(this);
    if (self.attr('checked')) {
        self.closest('tr').nextAll().addClass('highlight').find(':checkbox').attr('checked', true);
    }
    else {
        self.closest('tr').nextAll().removeClass('highlight').find(':checkbox').attr('checked', false);
    }
  });

 }); 

function setCBCollection( cb ){
  alert(cb.value);
}
</script>

1 个答案:

答案 0 :(得分:1)

你的意思是:

$('tr input[type=checkbox]:checked').each(function() {
  setCBCollection($(this));
});

你可以把它放在任何地方,例如:

$("#checkAll").click(function() {
    var self = $(this);
    if (self.attr('checked')) {
        self.closest('tr').nextAll().addClass('highlight').find(':checkbox').attr('checked', true);
    }
    else {
        self.closest('tr').nextAll().removeClass('highlight').find(':checkbox').attr('checked', false);
    }
    $('tr input[type=checkbox]:checked').each(function() {
      setCBCollection($(this));
    });
  });