Найти и удалить все теги, если в них пусто
<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, время: 23:19. |