#jquery #html #css
#jquery #HTML #css
Вопрос:
Я хочу скрыть элемент, если элемент span внутри div не содержит текста
ниже приведен пример HTML
<div class="showcase-caption" style="display: block;">
<span> If this span has no text then i need to change the display property of outer div to none</span>
</div>
Я пытался сделать это с помощью css, но это сработало не так, как ожидалось. поэтому я думаю, что jquery может работать лучше и обрабатывать старые браузеры.
В этом случае мне нужно изменить встроенное свойство, которое автоматически генерируется другим скриптом для отображения подписи к изображению для галереи изображений.
Обновление: Спасибо, ребята, за ваши ответы. Я выбираю решение ‘satpal’, поскольку оно короткое и дало мне точный результат.
Ответ №1:
Просто используйте :empty
. Вам не нужен блок if.
$('.showcase-caption span:empty').parent().hide()
Ответ №2:
Обновленная демонстрация
Используйте jQuery is()
и :empty
псевдоселектор.
if( $('.showcase-caption span').is(':empty') ) {
$('.showcase-caption').hide();
}
Комментарии:
1. Он по-прежнему показывает зеленую полосу из-за заполнения, я хочу скрыть его полностью
2. @sudharsan, в моей демонстрации я написал
hide()
код поspan
щелчку мыши. Так используетсяthis
Ответ №3:
Попробуйте использовать .is()
along with :empty
selector для выполнения вашей задачи,
if($('.showcase-caption span').is(':empty')) {
ДЕМОНСТРАЦИЯ
Полный код:
var cache = $('.showcase-caption');
if($('span', cache).is(':empty')) {
cache.hide();
}
ДЕМОНСТРАЦИЯ
Или вы можете просто написать с помощью :has()
селектора,
$('.showcase-caption:has(span:empty)').hide();
ДЕМОНСТРАЦИЯ
Ответ №4:
if($(".showcase-caption span").html().trim().length <= 0 ){
$(".showcase-caption").hide();
}
Ответ №5:
Попробуйте это.
$(function){
if($('.showcase-caption span').is(':empty')){
$('.showcase-caption').css("display" , "none");
}
}