<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放在哪里。谢谢你的回答。
答案 0 :(得分: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);
});
});
亲切的问候,
阿诺德·