1
<script>
    $(function(){
    $('.parent').on('click',function(){
    $(this).find('.child[]').attr('checked',this.checked);
    });
});
</script>
<table>
  <thead>
    <tr>
      <th>S No.</th>
      <th><input type="checkbox" name="select1" id="select1" class="parent" /></th>
      <th>Title</th>
      <th>End Date</th>
      <th>Action</th>
      <th>Deal Type</th>
      <th>Status</th>
    </tr>
  </thead>   
  <tbody>
    <tr>
    <?php $sql="select * from table_name where id='$id'";
      $result=mysql_query($sql); 
      $sn=1;
      while($show=mysql_fetch_array($result))
      { 
          $student=$show['student'];

      ?>
      <td><?php  echo $sn; ?></td>
      <td><?php echo "<input type='checkbox' name='check[]' class='child[]' id='check[]' value='".$student."'/>"; ?></td>
      <td>enddate</td>
      <td>View</td>
      <td>Edit</td>                                            
      <td>Delete</td>
      <td>xyz</td>
    </tr>
    <?php $sn++ }}?>

在这里,checkbox-name=select1不在循环中,它是父复选框。checkbox-name=check实际上是一个复选框数组,以及来自数据库的数据。如果数据库中有 10 个条目,则会出现 10 个复选框。我希望如果我选中父复选框,那么所有复选框都应该被选中,而不管你可以说什么数字,就像 gmail 一样。还请告诉在哪里放置 javascript/jquery。谢谢您的回答。

4

1 回答 1

1

您的this点击回调内部将引用复选框本身。所以$(this).find('.child[]')不会找到任何元素。

另请注意,它class="index[]"不适用于 jQuery,因此您想将其更改为class="index". 你可以name="index[]"原样离开。

如果您想在父表范围内查找元素(从而允许您拥有多个 (un)check all 的结构),您可以使用:

$(function(){
  $('.parent').on('click',function(){
      $(this).parents('table').find('.child').attr('checked',this.checked);
  });
});

如果您只想查找文档中的所有子节点,您可以使用:

$(function(){
  $('.parent').on('click',function(){
      $('.child').attr('checked',this.checked);
  });
});

亲切的问候,

阿诺德

于 2013-05-04T08:03:03.167 回答