если у div есть контент покажи div

jquery animation html

91131 просмотра

4 ответа

298 Репутация автора

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

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

я не думаю, что вам нужен HTML для этого

он ищет «Продукт», как мне сделать, чтобы он просто смотрел контент> 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 %% вызывает что-то, вставленное через панель администратора. в этом случае, если ничего нет .. это отображается как пустое место в коде (просмотр источника в браузере).

Автор: Alex Источник Размещён: 08.10.2010 06:49

Ответы (4)


15 плюса

556050 Репутация автора

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

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

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

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

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

 if ($("#box3:has(*)").length) {
   $('#third').show();
 }  
Автор: Nick Craver Размещён: 08.10.2010 06:51

63 плюса

315961 Репутация автора

Решение

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

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

Или для HTML:

 $(document).ready(function(){
   if ($("#box3").html().length > 0) {
     $('#third').show();
   }                                           
 });
Автор: Sarfraz Размещён: 08.10.2010 06:52

0 плюса

35940 Репутация автора

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

if ($("#box3").html().length) {
    $('#third').show();
}       
Автор: swilliams Размещён: 08.10.2010 06:52

1 плюс

20 Репутация автора

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

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

:emptyСелектор только нацеливание только пустые элементы, без пробелов.

Автор: KKumar Размещён: 01.07.2016 11:29
Вопросы из категории :
32x32