选择任何 TR 和/或 TD 并隐藏元素
select any tr and/or td and hide an element
我试图在这里找到答案,但无法完成!
我有一张有几行的桌子。有些在单元格中有一个名称,有些则有上传 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
一些创造性的过滤和查找。
$(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
});
<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>
小心:id 应该是唯一的。
您可以尝试以下方法:
$('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()
;-)
相关文章:
- JQuery展开和隐藏表td
- 在td JavaScript中获取隐藏的输入值
- 防止隐藏的 tr 破坏 td 宽度
- 根据TD类别隐藏TR
- jQuery隐藏所有trs或td,而不仅仅是一个
- 如果包含完全匹配,则隐藏表td
- AngularJS:隐藏<td>使用ng-hide/ng-show没有间隙
- 使用jquery隐藏td
- 使用 jQuery 不检查隐藏的 td:s
- 当鼠标悬停在TD上时,保持标题向上,并将其隐藏在鼠标上
- 选择任何 TR 和/或 TD 并隐藏元素
- 在 jquery 中显示和隐藏 td
- 如何通过jquery从td隐藏字段中获取值
- 如何使用JQuery基于存储在第一个TD中的表的值来隐藏存储在第二个TD的图像
- 删除/隐藏表<tr>(s) 其<td>(s) 没有文本
- 隐藏<td>AJAX刷新后从表中删除
- 查找父兄弟td隐藏值
- html嵌套表通过单击表行第一个td来隐藏或显示表行
- 仅当td在特定html标记后不包含任何内容时,才隐藏tr
- 当 td 行为空时隐藏表列