2010-10-08 84 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選擇僅定位到剛剛空元素,沒有空白。