2010-10-08 36 views
31

ok heres những gì tôi có ... nó hoạt động tốt nhưng nó tìm kiếm một từ chứ không phải là nội dung. tôi chỉ muốn nó hiển thị khi có bất kỳ nội dung ..nếu div có nội dung hiển thị div

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

tôi không nghĩ rằng bạn cần html cho điều này

nó trông cho 'sản phẩm' làm thế nào để làm cho nó chỉ tìm kiếm nội dung> 0

<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> 

một giỏ mua hàng xen kẽ để %% panel.upc %% gọi vào thứ gì đó được chèn qua bảng quản trị. trong trường hợp này nếu không có gì .. nó cho thấy là không gian trống trong mã (xem nguồn trong trình duyệt).

Trả lời

55

Nếu bạn muốn kiểm tra cho văn bản, bạn có thể sử dụng text() phương pháp:

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

Hoặc cho html:

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

Kiểm tra '.text()' không phải là một ý tưởng hay ở đây, ví dụ: '' –

+0

@Nick Craver: Tôi cũng đã đăng phương thức 'html()' , chỉ nghĩ rằng ông chỉ có thể muốn kiểm tra cho văn bản không phải các yếu tố khác :) – Sarfraz

+0

hmm này đang làm việc cho tôi tôi đã thêm một id bs # # div div để tìm kiếm của nó trong hộp bên trong. nó vẫn nhận ra khoảng trắng để nó hiển thị # thứ ba ... tôi chỉ làm nó "> 5" thay vì 0 và nó hoạt động .... thankyou! = D – Alex

12

Đối với câu hỏi Cập nhật: Kiểm tra văn bản tỉa của bên <div>, như thế này:

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

câu trả lời trước: Nếu bạn muốn hiển thị nếu nó có bất cứ điều gì, sau đó kiểm tra :not() chống lại :empty hoạt động:

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

Nếu bạn muốn kiểm tra bất kỳ eleme nào nts (không thể khoảng trắng duy nhất), sau đó sử dụng :has(*), như thế này:

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

không hoạt động ... có một div khác bên trong vì vậy có thể nó thấy điều gì đó? tôi sẽ đăng html – Alex

+0

@Alex - hoàn toàn nó sẽ thấy rằng, nếu bạn muốn kiểm tra xem có cái gì khác * khác * trống không, chúng tôi sẽ cần HTML. –

+0

@Alex - Cập nhật cho câu hỏi được cập nhật của bạn :) –

0

Bạn cũng có thể kiểm tra độ dài của HTML trong bộ chọn của mình:

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

Bạn cũng có thể sử dụng selector CSS3 :empty

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

Bộ chọn :empty chỉ nhắm mục tiêu chỉ phần tử rỗng, không có khoảng trắng.

Các vấn đề liên quan