我试图在这里找到答案,但无法完成!
我有一个包含几行的表格。有些在单元格中有一个名称,其他有上传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
答案 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)
一些创造性的过滤和发现。
$(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;
小心:id应该是唯一的。