JS Определить наличие текста в строчном тэге
Имею подобную HTML конструкцию:
<article class="blog__item-gallery" id="item-gallery">
<div class="blog__item-gallery-element blog__item-gallery-element-stretch">
<p class="blog__item-gallery-element-text"></p>
<img class="blog__item-gallery-element-img" src="img/content/blog/***.webp" alt="">
</div>
<div class="blog__item-gallery-element blog__item-gallery-element-stretch">
<p class="blog__item-gallery-element-text"></p>
<img class="blog__item-gallery-element-img" src="img/content/blog/***.webp" alt="">
</div>
</article>
Задача: исходя из наличия теста в тэге <p> задать ему класс, если в содержимом тэга что-то написано.
Как в js определить наличие содержимого в этом, и подобных строчных тэгах?
Ответы (2 шт):
Автор решения: Nick Dunne
→ Ссылка
Получаете элемент.
const el = document.querySelector(".myclass");
Проверить есть ли в элементе текстовое содержимое можно с помощью свойства innerText
Проверка на пустосту. Если не пусто - добавляете класс.
if(el.innerText !== ''){
el.classList.add('yourClass')}
Автор решения: BlackStar1991
→ Ссылка
Эххх, а задачу то вообще без JS решить можно =) ну правда если у вас там декор классы
.blog__item-gallery-element-text {
position: relative;
}
.blog__item-gallery-element-text:empty:after {
position: absolute;
top: 100%;
left: 0;
color: #f00;
content: "Художествины фильм - Спиздили!";
}
<article class="blog__item-gallery" id="item-gallery">
<div class="blog__item-gallery-element blog__item-gallery-element-stretch">
<p class="blog__item-gallery-element-text"></p>
<img class="blog__item-gallery-element-img" src="img/content/blog/***.webp" alt="">
</div>
<div class="blog__item-gallery-element blog__item-gallery-element-stretch">
<p class="blog__item-gallery-element-text">Text</p>
<img class="blog__item-gallery-element-img" src="img/content/blog/***.webp" alt="">
</div>
</article>
Если DOM элемент ничего не выводит, его не надо выводить.