使用if语句来检查div是否为空

我试图去除一个特定的div如果一个单独的div是空的。 以下是我正在使用的:

$(document).ready(function () { if ('#leftmenu:empty') { $('#menuTitleWrapper').remove(); $('#middlemenu').css({ 'right': '0', 'position': 'absolute' }); $('#PageContent').css({ 'top': '30px', 'position': 'relative' }); } }); 

我认为这是接近,但我不知道如何编写#leftmenutesting的代码是空的。 任何帮助表示赞赏!

你可以使用.is()

 if( $('#leftmenu').is(':empty') ) { // ... 

或者你可以testinglength属性,看看是否有人被发现。

 if( $('#leftmenu:empty').length ) { // ... 

请记住, 空也意味着没有空格。 如果有可能会有空白,那么你可以使用$.trim()并检查内容的长度。

 if( !$.trim( $('#leftmenu').html() ).length ) { // ... 

这取决于你的意思是空的。

检查是否没有文本(这允许自己为空的子元素):

 if ($('#leftmenu').text() == '') 

要检查是否没有子元素或文本:

 if ($('#leftmenu').contents().length == 0) 

要么,

 if ($('#leftmenu').html() == '') 

如果你想快速演示如何检查空的div我build议你尝试这个链接:

http://html-tuts.com/check-if-html-element-is-empty-or-has-children-tags/


下面你有一些简短的例子:

使用CSS

如果你的div是空的,甚至没有空白,你可以使用CSS:

 .someDiv:empty { display: none; } 

不幸的是没有select前一个兄弟元素的CSSselect器。 只有下一个兄弟元素: x ~ y

 .someDiv:empty ~ .anotherDiv { display: none; } 

使用jQuery

使用text()函数检查元素的文本长度

 if ( $('#leftmenu').text().length == 0 ) { // length of text is 0 } 

检查元素里面是否有任何子标签

 if ( $('#leftmenu').children().length == 0 ) { // div has no other tags inside it } 

检查空白元素,如果他们有空白

 if ( $.trim( $('.someDiv').text() ).length == 0 ) { // white-space trimmed, div is empty } 

您可以像这样扩展jQueryfunction:

延长:

 (function($){ jQuery.fn.checkEmpty = function() { return !$.trim(this.html()).length; }; }(jQuery)); 

使用 :

 <div id="selector"></div> if($("#selector").checkEmpty()){ console.log("Empty"); }else{ console.log("Not Empty"); } 

尝试这个:

 $(document).ready(function() { if ($('#leftmenu').html() === "") { $('#menuTitleWrapper').remove(); $('#middlemenu').css({'right' : '0', 'position' : 'absolute'}); $('#PageContent').css({'top' : '30px', 'position' : 'relative'}); } }); 

这不是最漂亮的,但它应该工作。 它检查innerHTML(#leftmenu的内容)是否是一个空string(即里面没有任何内容)。

在我的情况下,我有多个元素隐藏在document.ready上。 这是到目前为止我工作的function(filter):

 $('[name="_invisibleIfEmpty"]').filter(function () { return $.trim($(this).html()).length == 0; }).hide(); 

或.remove()而不是.hide(),无论你喜欢什么。

仅供参考:特别是,我用这个解决scheme来隐藏SharePoint中烦人的空表格单元格(此外还有这个条件“|| $(this).children(”menu“)。length”。

 if (typeof($('#container .prateleira')[0]) === 'undefined') { $('#ctl00_Conteudo_ctrPaginaSistemaAreaWrapper').css('display','none'); } 
 if($('#leftmenu').val() == "") { // statement }