Javascript jquery:隐藏表中的同级元素

Javascript jquery:隐藏表中的同级元素,javascript,jquery,Javascript,Jquery,这是我的HTML表格 <table id="all-tasks-display-table"> <thead> <th>Status</th> <th>Subject</th> </thead> <tbody> <tr> <td><input id="j_id0:acc-details:all-tasks-list-repeat:0:all-tas

这是我的HTML表格

<table id="all-tasks-display-table">
<thead>
    <th>Status</th>
    <th>Subject</th>
</thead>
<tbody>
<tr>
    <td><input id="j_id0:acc-details:all-tasks-list-repeat:0:all-tasks-is-completed" type="checkbox" name="j_id0:acc-details:all-tasks-list-repeat:0:all-tasks-is-completed" checked="checked">
    <td><span id="j_id0:acc-details:all-tasks-list-repeat:0:all-tasks-name">ALPHA</span></a></td>
</tr>
<tr>
    <td><input id="j_id1:acc-details:all-tasks-list-repeat:0:all-tasks-is-completed" type="checkbox" name="j_id1:acc-details:all-tasks-list-repeat:1:all-tasks-is-completed">
    <td><span id="j_id1:acc-details:all-tasks-list-repeat:0:all-tasks-name">BETA</span></a></td>
</tr>
</tbody>
</table>
但是由于它发生在一个表中,我不知道如何继续。

所以使用:has()和tr来选择行

$("tr:has([id$='all-tasks-is-completed'])").hide();
另一种方法是使用最接近的

$("[id$='all-tasks-is-completed']").closest("tr").hide();
  • 假设html标记始终相同,则使用
    closest()
    获取父tr,然后使用
    find()
    查找目标跨度,然后使用
    parent()
    以列父td为目标,然后使用
    hide()
    隐藏
  • $(“[id$='all-tasks-is-completed']”)。更改(函数(){
    如果($(this).is(“:checked”)){
    $(this).closest('tr').find(“span[id$='all-tasks-name']).hide();
    }
    }).change()
    
    
    地位
    主题
    阿尔法
    贝塔
    
    因此隐藏该行
    $("[id$='all-tasks-is-completed']").closest("tr").hide();