你好有人知道可以这样做吗?
$(document).ready(function(){
$('body').delegate('#check-hide-empty-table', 'click', function(){
if ($(this).is(':checked')) {
alert("checked")
$('table').find('tr td.test').parents('tr').hide();
}
else {
alert("uncheck")
$('table').find('tr td.test').parents('tr').show();
}
});
和像这样的php文件
</script>
<table id="myTable" class="table table-responsive table-hover table-striped table-fixed tablesorter">
<thead>
<th><input type="checkbox" value="hide" id="check-hide-empty-table"> Hide Empty</th>
</thead>
<tbody>
<?php
$first = false;
foreach ($data["data"] as $list) {
$isfull = $list["Players"] == $list["MaxUsers"] ? true : false;
?>
<tr class="tabClicker" data-tab="tabs-1" id="<?=$list["Id"];?>">
<td class= "test"><?= $list["Players"]."/".$list["MaxUsers"];?></td>
</tr>
<?php } ?>
</tbody>
</table>
我想要做的是,我想在 $ list [“player”] = 0 时创建隐藏的chechbox功能但是我很混淆如何这样我试图使用取值 .find(tr td.test)如果 .find(tr td.test)= 0 ,该表将被隐藏
怎么做?此代码现在仍然出错。谢谢你的帮助
答案 0 :(得分:1)
首先请注意,delegate()
方法已弃用。您应该使用on()
代替。如果您使用的是1.7以上的任何版本的jQuery,则需要升级它,理想情况下至少要升级到1.12。
在处理单选按钮和复选框时,您还应该使用change
事件,以便更好地访问。
要解决您的实际问题,您可以使用filter()
,如下所示:
$('#myTable').on('change', '#check-hide-empty-table', function() {
$('table').find('tr td.test').filter(function() {
return $(this).text().trim() == "0";
}).parents('tr').toggle(!this.checked);
});
在这个例子中,我通过提供if
属性到checked
方法的布尔值来否定对toggle()
语句的需要。