Найти и удалить все теги, если в них пусто
<ul class="one-col"> <li class="one-col__item">Тут что-то есть</li> <li class="one-col__item"></li> </ul> <ul class="two-cols"> <li class="two-cols__item">Тут что-то есть</li> <li class="two-cols__item">Тут что-то есть</li> <li class="two-cols__item"></li> <li class="two-cols__item"></li> <li class="two-cols__item">Тут что-то есть</li> <li class="two-cols__item"></li> </ul> Задача состоит в том, чтобы удалить все теги, в которых пусто. Пока что у меня только получается найти пустые теги, но метод remove не срабатывает.
let tagcontent = document.getElementsByClassName('one-col__item','two-cols__item')[0].textContent;
if (tagcontent === '') {
tagcontent.remove();
}
|
Цитата:
Удалять нужно элемент
document.getElementsByClassName('one-col__item','two-cols__item')[0]
|
Можете скрыть пустые элементы через CSS:
.one-col__item:empty, .two-cols__item:empty {
display: none;
}
Если нужно именно удалить элементы через JS, то можно попробовать такой вариант:
document.querySelectorAll('.one-col__item:empty, .two-cols__item:empty').forEach((element) => {
element.remove();
});
|
Цитата:
|
Цитата:
|
Цитата:
|
ixiz,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<ul class="one-col">
<li class="one-col__item">Тут что-то есть</li>
<li class="one-col__item"></li>
</ul>
<ul class="two-cols">
<li class="two-cols__item">Тут что-то есть</li>
<li class="two-cols__item">Тут что-то есть</li>
<li class="two-cols__item"></li>
<li class="two-cols__item"></li>
<li class="two-cols__item">Тут что-то есть</li>
<li class="two-cols__item"></li>
</ul>
<script>
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('[class*="__item"]').forEach((element) => {
element.textContent.trim() || element.remove();
});
})
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 07:31. |