如果td为空(我不需要a
和div's
),我需要隐藏一个表格。
如果有内容,没有什么可隐藏的,不需要 但如果td为空 - 需要隐藏表格
<table class="klist-actions">
<tr>
<td class="klist-actions-goto">
<a name="forumbottom"></a>
</td>
<td class="klist-actions-forum">
<div class="kmessage-buttons-row">
<a class="kicon-button kbuttoncomm btn-left" href="#"></a>
</div>
</td>
<td class="klist-pages-all">
</td>
</tr>
</table>
答案 0 :(得分:4)
如果td
元素中的任何一个为空,则此代码将隐藏表格:
//select all td elements, iterate through them and check the length of their content
$(".klist-actions td").each(function(i,e){
if(!$.trim(e.innerHTML).length){
$(e).parents("table").hide();
}
});
JS小提琴: http://jsfiddle.net/XJd8t/7/
答案 1 :(得分:1)
如果要隐藏具有空td
元素的表格,可以使用.filter()
方法:
$('table').filter(function(){
return $('td', this).filter(function() {
return $.trim(this.innerHTML).length === 0;
}).length;
}).hide();
如果你想要隐藏表中所有td
个后代都是空的,你可以将td
后代的长度与空的后者进行比较,如果所有后代都是空的,则隐藏表:
$('table').filter(function() {
var $tds = $('td', this);
return $tds.filter(function() {
return $.trim(this.innerHTML).length === 0;
}).length === $tds.length;
}).hide();
答案 2 :(得分:0)
以下代码将隐藏任何至少有一个'td'没有“a”或“div”的“表格”
$('table:has(td:not(:has(a div)))').hide();
jQuery有很多有趣的选择器,请阅读它们here
答案 3 :(得分:0)
$('table').filter(function() {
var $tds = $('td', this);
return $tds.filter(function() {
return $.trim(this.innerHTML).length === 0;
}).length === $tds.length;
}).hide();