我想要隐藏表格的所有<tr>
,除非我点击它。
<table>
<tr>
<td>ABC</td>
<td>DEF</td>
<td><i class="delete">delete </i></td>
</tr>
<tr>
<td>ABC</td>
<td>DEF</td>
<td><i class="delete">delete </i></td>
</tr>
</table>
点击删除按钮会隐藏除当前行之外的所有行。
Jquery代码: -
$(document).ready(function () {
$('table tbody tr').siblings().not($(this)).hide();
});
请建议我。
答案 0 :(得分:8)
使用siblings
如下:
请参阅代码中的内联注释:
// Bind click event on `tr` inside `table`
$('table').on('click', 'tr', function () {
// Show current `tr` and hide others
$(this).siblings().hide();
});
答案 1 :(得分:2)
您需要在单击事件处理程序下运行代码,而不是在页面加载时运行。另请注意,使用.not(this)
时siblings()
是多余的,因为无论如何都不会包含原始元素。试试这个:
$(document).ready(function() {
$('table tbody tr').click(function() {
$(this).siblings().hide();
});
});
答案 2 :(得分:1)
$(document).ready(function () {
$('table tbody tr').click(function(){
$('table tbody tr').hide();
$(this).show();
})
});