使用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 }