если у div есть контент покажи div - PullRequest
35 голосов
/ 08 октября 2010

хорошо, вот что у меня есть ... работает нормально, но ищет слово, а не содержание.я просто хочу, чтобы он показывал, когда есть какой-либо контент.для содержимого> 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>

это внутренняя корзина, поэтому %% panel.upc %% вызывает что-то, вставленное через панель администратора.в этом случае, если ничего нет .. в коде он отображается как пробел (просмотр источника в браузере).

Ответы [ 4 ]

63 голосов
/ 08 октября 2010

Если вы хотите проверить текст , вы можете использовать метод text():

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

Или для HTML:

 $(document).ready(function(){
   if ($("#box3").html().length > 0) {
     $('#third').show();
   }                                           
 });
15 голосов
/ 08 октября 2010

Для обновленного вопроса: Проверьте усеченный текст внутреннего <div>, например:

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

Предыдущий ответ: Если вы хотитепокажите, есть ли что-нибудь , тогда проверка :not() против :empty работает:

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

Если вы хотите проверитьлюбые элементы (не только пробелы), затем используйте :has(*), например:

 if ($("#box3:has(*)").length) {
   $('#third').show();
 }  
1 голос
/ 01 июля 2016

Вы также можете использовать селектор CSS3 :empty

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

Селектор :empty предназначен только для пустых элементов без пробелов.

0 голосов
/ 08 октября 2010

Вы также можете проверить длину HTML внутри вашего селектора:

if ($("#box3").html().length) {
    $('#third').show();
}       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...