2015-02-12 3 views
0

Так что я получаю нечистый контент из API, который используются нашими издателями контента, и я получаю P-теги с неразрывными пространствами внутри них, и я хочу было бы неплохо, если бы они очистили свой контент, прежде чем опубликовали его в API, но мне просто нужен быстрый способ удалить это с помощью JavaScript или jQuery. Я получаю эту ошибку при использовании кода ниже. «Ошибка синтаксиса, непризнанное выражение:  « Спасибо за любую помощь.Удалите тег P с неразрывным пространством внутри него с помощью JavaScript или jQuery

<p>&nbsp;</p> 

$("p").each(function() { 
    $(this).find('&nbsp;').remove(); 
}); 
+0

related: http://stackoverflow.com/questions/6813227/how-do-i-check-if-an-html-element-is-empty-using-jquery –

ответ

3

Выберите свои элементы абзаца, отфильтровать те, которые содержат только &nbsp; с помощью .filter(), а затем использовать .remove():

$('p').filter(function(){ 
    return this.innerHTML == '&nbsp;'; 
}).remove(); 

JSFiddle

Или:

$('p').filter(function(){ 
    return !$.trim($(this).text()); 
}).remove(); 

Который, потому что .text() обрабатывает декодирование HTML для вас и $.trim() удаляет внешние пробела, позволит удалить абзац, который содержит только пробела IE

<p>&nbsp; &nbsp;&nbsp;</p> 
+0

Эй У меня действительно есть вопрос, что делает передать символ подчеркивания в качестве первого параметра? – ChrisJ

+0

То же самое, что и передать 'a',' b', 'c', .. как первый параметр, который был из предыдущего ответа, когда я неправильно понял вопрос. – George

+0

Таким образом, нет отдельного значения. Благодаря! – ChrisJ

1
$(p).each(function(){ 
$(this).html($(this).html().replace("&nbsp;", "")); 
$(this).replaceTagName(''); 
// or $(this).contents().unwrap(); much faster 
}); 
+2

«Я хочу удалить неразрывное пространство ** и ** P, которое находится в« – j08691

+0

Это решает часть моей проблемы. Можно ли удалить тэг P, который также находится в неразрывном пространстве? – Justin

+0

См. Обновленный ответ. – void

0

Это работает:

$('p').filter(function() { 
    return $(this).html().replace(/&nbsp;/g, '').length === 0 
}).remove() 

jsFiddle example

В то время как вы сказали «Я хочу удалить неразрывное пространство и P, в котором он находится», вам нужно только удалить P с тех пор t возьмет с собой &nbsp;.

+0

Извините за мою формулировку вопроса. Спасибо. – Justin

 Смежные вопросы

  • Нет связанных вопросов^_^