查找元素在jquery中是否包含空元素

时间:2011-12-01 12:49:40

标签: jquery

我需要查找一个div元素是否填充了来自我无法控制的系统中的大量表格的空白。而且我的意思是如果div中的表没有任何内容。

这是系统生成的精简标记:

<div class="shadowBox">
    <table>
        <tbody>
            <tr>
                <td>
                    <table>
                        <tbody>
                            <tr>
                                <td>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
        </tbody>
    </table>
</div>

在某些情况下,第二个(最内层)表中包含内容,在某些情况下则不包含内容。如果第二个表中没有内容,我想隐藏div。我可以通过结构并检查td的html来实现这一点:

$.trim($(".shadowBox table tbody tr td table tbody tr td").html())==""

有没有更简单的方法呢?

5 个答案:

答案 0 :(得分:4)

您可以使用text()

$.trim($(".shadowBox").text())===""

其中:

  

获取匹配集合中每个元素的组合文本内容   元素,包括它们的后代。

如果是空的,请将其隐藏

if($.trim($(".shadowBox").text())===""){
     $(".shadowBox").hide();
}

答案 1 :(得分:3)

此解决方案将获得所有具有不具有内容的shadowBox类的div。

这是代码:

$(".shadowBox").filter(function () {
    return $.trim($(this).text()) === "";
}).hide();

测试here

答案 2 :(得分:1)

$.trim($(".shadowBox table table").text())==""

应该这样做。 .text()将获取所选元素中的所有文本(无html)。

答案 3 :(得分:1)

您可能想要使用.text()

它将返回div的每个后代的组合文本内容

if($(".shadowBox").text() == '')
    console.log('Empty');

答案 4 :(得分:0)

查看jquery :emptydocs)选择器

$("shadowBox table tbody tr td table tbody tr td:empty")