单击复选框后显示/隐藏表格行
show / hide table rows after clicking on checkbox
我想在用户单击复选框后删除所有表行,除了带有复选框的表行,并在再次取消选中复选框时显示回表行。我的代码只用于删除,但我需要在取消检查后再次显示该表。
function Showhidefunc(btndel) {
if (typeof(btndel) == "object") {
$('table tr td:first-child :checkbox:not(:checked)').closest('tr').remove();
} else {
return false;
}
}
<thead>
<tr>
<th>Select</th>
<th>Month</th>
<th>Username</th>
<th>Deduction</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" onChange="Showhidefunc(this);"></td>
<td><?php echo $Name_row ['Month'];?></td>
<td><?php echo $Name_row ['Username'];?></td>
<td><?php echo $Name_row ['Total_Deduction'];?></td>
</tr>
</tbody>
谢谢各位:)
不要对行使用.remove()
,因为这会删除它们;一旦你把它们移走,它们就不见了,你再也找不回来了。
先使用.hide()
,然后使用.show()
function Showhidefunc(chkbox) {
if ($(chkbox).is(":checked"))
$('table tr td:first-child :checkbox:not(:checked)').closest('tr').hide();
} else {
$('table tr td:first-child :checkbox:not(:checked)').closest('tr').show();
}
}
更新:更新代码以匹配html和更好的if/else
带切换的版本:
function Showhidefunc(chkbox) {
$('table tr td:first-child :checkbox:not(:checked)').closest('tr').toggle(!$(chkbox).is(":checked"));
}
顺便说一句,还有其他方法可以做到这一点,例如使用.map()
function Showhidefunc(btndel) {
if (typeof(btndel) == "object") {
$('table tr td:first-child :checkbox:not(:checked)').closest('tr').remove();
} else
{
return false;
}
}
删除应该是.hide()
在其他情况下,您希望执行相同的操作,但使用.show()
而不是
相关文章:
- 当缺少正文时,隐藏表格
- 隐藏表格行
- 如果用户单击表格行,则显示或隐藏表格行(HTML/JQuery)
- 如何根据下拉列表中的选择隐藏表格行
- 如果选中复选框,则显示或隐藏表格行
- 无法使用Angular.js隐藏表格行的按钮
- 如果没有数据,如何隐藏表格并使用jQuery或JavaScript显示表单
- 使用 jquery 隐藏表格边框
- 如何隐藏表格部分并在单击后显示
- 隐藏表格的第二行和第三行
- 显示和隐藏表格的链接
- 如何在文本为空时隐藏表格单元格
- 使用jQuery显示/隐藏表格
- 如何使用Jquery数据表插件隐藏表格中的列
- JQuery搜索栏隐藏表格行
- 通过复选框隐藏表格
- 如何用jQuery选择隐藏表格中的行
- Javascript隐藏表格单元格按钮单击
- jQuery-隐藏表格->重新加载页面后,我的表显示了几秒钟
- 通过js或jQuery按需显示/隐藏表格数据