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

我知道这应该很简单,但无法弄清楚。 这是代码。

 

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

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

对不起,如果这是一个简单的问题。 星期一!

谢谢!

你可以这样做:

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

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

如果要删除它看起来是空的:

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

jsFiddle示例

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

上面超过$(#leftmenu:empty)的最大优点是上面的例子在以下情况中删除:empty不会:

  // The above code works in these cases where ":empty" does not: 
// <== white space

// <== empty elements

。修剪()
。文本()
。去掉()


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

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