选择任何tr和/或td并隐藏元素

时间:2014-12-05 15:38:32

标签: javascript jquery

我试图在这里找到答案,但无法完成!

我有一个包含几行的表格。有些在单元格中有一个名称,其他有上传ID。像这样:

<tr>
 <td>blabla</td>
 <td>Name: Messi</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>
<tr>
 <td>blabla</td>
 <td>upload id: 123456</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>
<tr>
 <td>blabla</td>
 <td>upload id: 654321</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>

我试图在其中找到name的每个td。只是单词name而不是name: messi。 如果该单词存在,则隐藏下一个td中的#upload-button。我真的无法想象那一个。

我拥有的是这个并且都不起作用。任何人都可以帮我这个吗?

$('tr:has(td:contains("name"))').closest('#upload-button').hide(); //doesnt work


    $("tr td:contains('name')").each(function(){
      $(this).siblings('td').css("visibility","hidden");
    });//doesnt work

2 个答案:

答案 0 :(得分:2)

您可以尝试以下操作:

$('td').each(function(){
    //check if contains 'name'
    if( this.innerHTML.toLowerCase().indexOf( 'name' ) !== -1 ) {
        // I think next is better as siblings -> selects only the button td
        //$(this).siblings('td').css("visibility","hidden");
        $(this).next('td').css("visibility","hidden");
    }
});

修改 根据评论添加了.toLowerCase(); - )

答案 1 :(得分:2)

一些创造性的过滤和发现。

&#13;
&#13;
$(function(){

     $('tr td').filter(function(){
        return $(this).text().toLowerCase().indexOf('name')>-1;
      }) // first find only the td's containing the text you want
      .parent() // step up to the tr
      .find('a') // find the `a` - only because you've duplicated id's. This could be any selector
      .hide();  // hide it
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
 <td>blabla</td>
 <td>Name: Messi</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>
<tr>
 <td>blabla</td>
 <td>upload id: 123456</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>
<tr>
 <td>blabla</td>
 <td>upload id: 654321</td>
 <td><a id="upload-button" href=".."/>button</a></td>
 <td>blabla</td>
</tr>
</table>
&#13;
&#13;
&#13;

小心:id应该是唯一的。