Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удалить пустые теги (https://javascript.ru/forum/dom-window/65641-udalit-pustye-tegi.html)

kolhoz 31.10.2016 11:49

Удалить пустые теги
 
Здравствуйте. На сайте есть теги <p></p> и <p> </p>. Как их удалить? Пробовал так, но не получается:

<script>
		$("p").each(function(){
		  if( $.trim($(this).text()) == "" ){
			$('p:empty').remove();
		  }
		});	
	</script>

рони 31.10.2016 12:14

kolhoz,
$(this).remove();

Rasy 31.10.2016 12:16

<div><p></p><p> </p><p>              </p></div>

<script>
var p = document.getElementsByTagName('p');
var re = /^\s*$/m;
[].forEach.call(p, function(el) {
	var parent_element = el.parentNode;  
	if (re.test(el.textContent)) {
    setTimeout(function() {
		  parent_element.removeChild(el);
    }, 0);
  }
});
</script>

рони 31.10.2016 12:18

Rasy,
querySelectorAll и никаких setTimeout или обычный for с конца

Rasy 31.10.2016 12:40

рони,
почему querySelectorAll?

kolhoz 31.10.2016 12:47

<script>
		$("p").each(function(){
		  if( $.trim($(this).text()) == "" ){
			$(this).remove();
		  }
		});	
	</script>


Почему-то не удаляет.

рони 31.10.2016 13:00

kolhoz,
потому что нет p когда вы запускаите скрипт

рони 31.10.2016 13:01

Цитата:

Сообщение от Rasy
почему querySelectorAll?

потому что снимок, а не живая коллекция(getElements), которая изменяет свои данные при каждом удалении.

Rasy 31.10.2016 13:06

рони,
Да, спасибо. Теперь действительно таймер лишний.:)


Часовой пояс GMT +3, время: 21:21.