2015-03-02 4 views
0

Есть ли способ удалить абзацы без текста в них, но может иметь в них пустые теги html?Удалить абзацы без текста

Например

<p><strong><br></strong></p> or <p></p> or <p>&nbsp;</p> 

будет удален, но

<p><strong>hi<br>there</strong></p> or <p>hi there</p> 

не будет удален

+1

Что об использовании аккуратным? http://tidy.sourceforge.net/ – alfallouji

ответ

2

Использование JQuery для перебора всех р элементов, а затем получить только текст его, обрезать ее (так что просто имеющие пробелы также получает удалены), а затем проверить, если есть текст в нем, и если есть ISN» t, удалите его.

$('p').each(function() { 
    if ($(this).text().trim() == "") { 
     $(this).remove(); 
    } 
}); 

jsfiddle пример: http://jsfiddle.net/ygbnpg77/

1

Ну, если вы хотите сделать это передним конец мудрого С помощью JavaScript вы можете сделать это.

$(document).ready(function(){ 
    $('p').each(function(){ 
      if($(this).html().length == 0) 
      { 
       $(this).remove(); 
      } 
    }) 

}) 
+0

Это не сработает, если в абзаце содержатся теги. Данный '


', $ (this) .html() будет равен '
'. –