Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2016, 11:49
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

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

<script>
		$("p").each(function(){
		  if( $.trim($(this).text()) == "" ){
			$('p:empty').remove();
		  }
		});	
	</script>
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2016, 12:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

kolhoz,
$(this).remove();
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2016, 12:16
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

<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>
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2016, 12:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Rasy,
querySelectorAll и никаких setTimeout или обычный for с конца
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2016, 12:40
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

рони,
почему querySelectorAll?
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2016, 12:47
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

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


Почему-то не удаляет.
Ответить с цитированием
  #7 (permalink)  
Старый 31.10.2016, 13:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

kolhoz,
потому что нет p когда вы запускаите скрипт
Ответить с цитированием
  #8 (permalink)  
Старый 31.10.2016, 13:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Rasy
почему querySelectorAll?
потому что снимок, а не живая коллекция(getElements), которая изменяет свои данные при каждом удалении.
Ответить с цитированием
  #9 (permalink)  
Старый 31.10.2016, 13:06
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить теги из текста alerzo Events/DOM/Window 32 18.03.2014 13:50
Удалить из массива пустые элементы dima*** Общие вопросы Javascript 48 14.02.2014 14:47
Как удалить пустые теги <ul></ul> Lodas Элементы интерфейса 4 11.12.2013 12:05
Удалить все HTML теги из <META> Mukhtar Events/DOM/Window 4 13.06.2013 19:44
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03