删除或隐藏div,如果它是空的

时间:2010-10-07 21:33:47

标签: jquery

我知道这应该很简单,但无法理解。这是代码。

<div class="cols lmenu_item1" id="leftMenuWrapper">
<div id="leftmenu"></div>
</div>

如果“leftmenu”为空,我只需要删除“leftMenuWrapper”。这是我一直在使用的。

$('#leftmenu').empty().remove('#leftMenuWrapper');

很抱歉,这是一个简单的问题。星期一!

谢谢!

3 个答案:

答案 0 :(得分:23)

你可以这样做:

$('#leftmenu:empty').parent().remove();

这只会选择#leftmenu ,如果:empty,那么只会将.parent() 抓取到.remove() }。如果它不为空,则第一个选择器将找不到任何内容,或者任何父项都不能删除。

答案 1 :(得分:5)

如果要删除外观为空:

if ( $.trim( $('#leftmenu').text() ) == "")
    $('#leftMenuWrapper').remove();

<强> jsFiddle example

以上只是#leftmenu的文本内容,并在检查是否存在任何内容之前修剪空白。

上述$(#leftmenu:empty)的最大优点是,在:empty不会出现以下情况时,上述内容将删除:

                  // The above code works in these cases where ":empty" does not:

<div id="leftmenu">     </div>                              // <== white space
<div id="leftmenu"><p></p></div>                            // <== empty elements

<强> .trim()
.text()
.remove()


请注意,以下内容更有效(但可读性较差):

var $elie = ('#leftmenu');
if ( $.trim( $elie.text() ) == "")
    $elie.parent().remove();

答案 2 :(得分:1)

if(!$('#leftmenu').html()){ $('#leftmenu').parent().remove(); }