如果td为空,则jQuery隐藏块

时间:2014-01-03 18:21:30

标签: jquery hide

如果td为空(我不需要adiv'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>

4 个答案:

答案 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();