Подтвердить что ты не робот

Удалите элементы только с помощью с помощью jQuery

Есть ли способ удалить этот

<p> </p>

с помощью jQuery?

4b9b3361

Ответ 1

Try:

$('p')
    .filter(function() {
        return $.trim($(this).text()) === '' && $(this).children().length == 0
    })
    .remove()

Что это значит, он находит все <p>, которые ничего не имеют в них, и удаляет их из DOM.

Ответ 2

Как упоминает Грег выше, тестирование обрезанного .text() будет удалять абзацы без текста, но иметь автономный элемент, например тег <img>. Чтобы избежать обрезки .html() return. Поскольку текст считается дочерним элементом в DOM, вы будете установлены.

$("p").filter( function() {
    return $.trim($(this).html()) == '';
}).remove()

Ответ 3

Вероятно, такой же ответ, как здесь, попробуйте сделать это по коду.

С jquery я буду использовать это:

$("p:empty").remove();

Также вы можете использовать .empty(), который удалит все дочерние узлы из набора согласованных элементов.

Ответ 4

Это может быть лучшим решением для CMS. Некоторые текстовые редакторы добавляют &nbsp; внутри пустых абзацев.

    $("p").filter( function() {

        var html = $(this).html();

        if(html == '' || html == '&nbsp;')
            return true;

    }).addClass('emptyP');

Ответ 5

$("p").filter( function() {
            return $.trim($(this).html()) == '';
        }).remove()

Я использовал это для удаления пустого абзаца, который содержит не такой элемент, как IMG, Input, Select и т.д.

Ответ 6

Если вы пытаетесь просто удалить все пустые элементы P или P только с одним пространством, вы можете сделать это:

$('p').map( function(){
  var html = $(this).html();
  if( !html.length || html == ' ' || html == String.fromCharCode(255) )
    return this;
}).remove();

Это повторяется через все P на вашей странице, и если они соответствуют определенным критериям (они пусты или имеют только пробел), то он удаляет их из DOM.

Кроме того, назначая наш html-контент один раз локальной переменной, он помогает script работать быстрее. Чтобы искать неразрывные пробелы, я просто сравниваю содержимое с строкой, созданной из символьного кода ASCII 255 (который является неразрывным пространством).

Функция jQuery map() может быть отличной, если недостаточно простого фильтра или сравнения атрибутов.

Подробнее об этом вы можете прочитать здесь. http://api.jquery.com/map/

Ответ 7

Это должно обрабатывать любой элемент с без детей любого типа (включая развернутые текстовые узлы).

$("p").filter(function() { 
  return !this.childNodes[0]
}).remove();

Ответ 8

дайте ему идентификатор (чтобы получить селектор).

<p id="myP"></p>


<script>

$("#myP").remove();

</script>