2010-10-08 89 views
31

确定继承人我有什么...它工作正常,但它看起来一个字,而不是内容。我只是希望它表明,当存在任何内容..如果div有内容显示的div

$(document).ready(function(){ 
     if ($("#box3:contains('Product')").length) { 
      $('#third').show(); 
     }           
    }); 

我不认为你需要为这个

它寻找“产品”我如何让它只认准内容> 0的HTML

<div id="first" class="tab" > 
    <div class="tabtxt"> 
     <a>DETAILS</a> 
    </div> 
</div> 
<div class="tab" id="second"> 
    <div class="tabtxt"> 
     <a>INSPIRATION</a> 
    </div> 
</div> 
<div class="tab" id="third" style="display:none"> 
    <div class="tabtxt"> 
     <a>NOTES</a> 
    </div> 
</div> 

<div class="boxholder"> 
    <div style="overflow: hidden; display:block" class="box" id="box1"> 
     <div style="padding: 10px; line-height:16px"> 
      %%Panel.ProductDescription%% 
     </div> 
    </div> 
    <div style="overflow: hidden; display:none" class="box" id="box2"> 
     <div style="padding: 10px; line-height:16px"> 
      %%Panel.ProductWarranty%% 
     </div> 
    </div> 
    <div style="overflow: hidden; display:none" class="box" id="box3"> 
     <div style="padding: 10px; line-height:16px"> 
      %%Panel.UPC%% 
     </div> 
    </div> 
</div> 

它是一个interspire购物车,所以%% panel.upc %%调用通过管理面板插入的内容。在这种情况下,如果没有任何东西......它显示为代码中的空白区域(在浏览器中查看源代码)。

回答

55

如果你想检查文本,您可以使用text()方法:

$(document).ready(function(){ 
    if ($("#box3").text().length > 0) { 
    $('#third').show(); 
    }           
}); 

或者为HTML:

$(document).ready(function(){ 
    if ($("#box3").html().length > 0) { 
    $('#third').show(); 
    }           
}); 
+0

检查'的.text()'是不是一个好主意在这里,例如:'' 2010-10-08 18:54:16

+0

@Nick Craver:我也贴了'HTML()'方法,只是以为他可能只想检查文本没有其他元素:) – Sarfraz 2010-10-08 18:55:44

+0

嗯这是为我工作我添加了一个BS ID#box3 div所以它寻找内心的盒子。它仍然承认空白,所以它显示#third ...我只是让它“> 5”,而不是0,它的工作原理....谢谢! = d – Alex 2010-10-08 19:23:50

12

对于更新的问题:检查内<div>的修剪文字,像这样:

if ($.trim($("#box3 div").html())) { 
    $('#third').show(); 
} 

以前的答案:如果你想显示其是否具有什么,然后检查:not()反对:empty作品:

if ($("#box3:not(:empty)").length) { 
    $('#third').show(); 
} 

如果你想检查任何eleme NTS(不可能空格只),然后用:has(*),像这样:

if ($("#box3:has(*)").length) { 
    $('#third').show(); 
} 
+0

没有不工作...还有另外一个DIV里面,所以也许它看到的东西?我会发布HTML – Alex 2010-10-08 18:55:51

+0

@Alex - 绝对会看到,如果您想检查* else *是否为空,我们将需要HTML。 – 2010-10-08 18:57:51

+0

@Alex - 更新了更新的问题:) – 2010-10-08 19:19:01

0

你也可以检查HTML是你的选择中长度:

if ($("#box3").html().length) { 
    $('#third').show(); 
}  
0

您也可以使用CSS3选择器:empty

div#empty-div:empty { 
    display: none; 
} 

:empty选择仅定位到刚刚空元素,没有空白。