Если div имеет контент show div
ok heres, что у меня есть... он отлично работает, но ищет слово, а не контент. я просто хочу, чтобы он показывал, когда есть какой-либо контент.
$(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 %% вызывает что-то, вставленное через панель администратора. в этом случае, если нет ничего.. он отображается как пробел в коде (источник просмотра в браузере).
Ответы
Ответ 1
Если вы хотите проверить текст, вы можете использовать метод text()
:
$(document).ready(function(){
if ($("#box3").text().length > 0) {
$('#third').show();
}
});
Или для html:
$(document).ready(function(){
if ($("#box3").html().length > 0) {
$('#third').show();
}
});
Ответ 2
Для обновленного вопроса: проверьте обрезанный текст внутреннего <div>
, например:
if ($.trim($("#box3 div").html())) {
$('#third').show();
}
Предыдущий ответ: Если вы хотите показать, есть ли у него что-нибудь, то :not()
от :empty
работает:
if ($("#box3:not(:empty)").length) {
$('#third').show();
}
Если вы хотите проверить какие-либо элементы (возможно, не только пробелы), используйте :has(*)
, например:
if ($("#box3:has(*)").length) {
$('#third').show();
}
Ответ 3
Вы также можете проверить длину HTML в селекторе:
if ($("#box3").html().length) {
$('#third').show();
}
Ответ 4
Вы также можете использовать селектор CSS3 :empty
div#empty-div:empty {
display: none;
}
Селектор :empty
предназначен только для пустых элементов без пробела.