Как очистить все содержимое <div> внутри родительского <div>?


219

У меня есть div, у <div id="masterdiv">которого есть несколько дочерних <div>элементов.

Пример:

<div id="masterdiv">
  <div id="childdiv1" />
  <div id="childdiv2" />
  <div id="childdiv3" />
</div>

Как очистить содержимое всех дочерних элементов <div>внутри мастера, <div>используя jQuery?


6
Я пометил ваш вопрос, потому что он никак не связан с Asp.net MVC (как вы его пометили).
Роберт Коритник

Попробуйте принять ответ, который использует .empty(). Это самый эффективный способ сделать это
Каньон Колоб

Ответы:


270
jQuery('#masterdiv div').html('');

Можем ли мы клонировать HTML и манипулировать этим? например, var tmp = $ ('<div>'). append ($ ('# masterdiv'). clone ()). remove (). html (); и получить div внутри #masterdiv из tmp, очистить содержимое и вернуться
Прасад

118
Использование .empty()было бы лучшим вариантом, так как никакой разбор строк не используется. Он работает напрямую с объектной моделью DOM.
Дрю Ноакс

7
empty()также очищает весь контент, сгенерированный с помощью jQuery.
MikkoP

445

empty()Функция jQuery делает именно это:

$('#masterdiv').empty();

очищает мастер div.

$('#masterdiv div').empty();

очищает все дочерние divэлементы, но оставляет мастера нетронутым.


8
api.jquery.com/empty это правда, но я не знаю, почему Квентин принял ответ :)
Nuri YILMAZ

5
Это очищает больше, чем требовалось в исходном вопросе - вы должны использовать более конкретный селектор .
Дрю Ноакс

4
Вау, спасибо тебе, Дрю, за то, что указал на это 1,5 года спустя :) Исправлено.
Эмиль Иванов

20

Используйте синтаксис селектора CSS jQuery, чтобы выбрать все divэлементы внутри элемента с идентификатором masterdiv. Затем позвоните, empty()чтобы очистить содержимое.

$('#masterdiv div').empty();

Использование text('')или html('')вызовет некоторый синтаксический анализ строк, что обычно является плохой идеей при работе с DOM. Попробуйте и по возможности используйте методы манипулирования DOM, которые не включают строковые представления объектов DOM.


14

jQuery рекомендует использовать ".empty ()", ". remove ()", ". detach ()"

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

$('#target_id').empty();

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

$('#target_id').remove();

я и группа jQuery не рекомендуем использовать SET FUNCTION, например .html () .attr () .text (), что это? это если вы хотите установить все, что вам нужно

ссылка: https://learn.jquery.com/using-jquery-core/manipulation-elements/


12

Если все div внутри этого masterdiv нужно очистить, то это так.

$('#masterdiv div').html('');

в противном случае вам нужно выполнить итерации для всех дочерних элементов div в #masterdiv и проверить, начинается ли идентификатор с childdiv.

$('#masterdiv div').each(
    function(element){
        if(element.attr('id').substr(0, 8) == "childdiv")
        {
            element.html('');
        }
    }
 );

11

Лучший способ это:

 $( ".masterdiv" ).empty();

1
При этом выбираются все элементы с классом «masterdiv», а не с id «masterdiv», в соответствии с вопросами - просто примечание.
Дейв



6
$('#div_id').empty();

или

$('.div_class').empty();

Работает нормально, чтобы удалить содержимое внутри div


3
Дубликат ответа Эмиля Иванова.
Адриан Энрикес

6

Вы можете использовать функцию .empty (), чтобы очистить все дочерние элементы

 $(document).ready(function () {
  $("#button").click(function () {
   //only the content inside of the element will be deleted
   $("#masterdiv").empty();
  });
 });

Чтобы увидеть сравнение между jquery .empty (), .hide (), .remove () и .detach (), следуйте здесь http://www.voidtricks.com/jquery-empty-hide-remove-detach/


5

Когда вы добавляете данные в div по id, используя любую службу или базу данных, сначала попробуйте пусто, например:

var json = jsonParse(data.d);
$('#divname').empty();


3

Я знаю, что это jQueryсвязанный вопрос, но я верю, что кто-то может прийти сюда в ожидании чистого Javascriptрешения. Итак, если вы пытаетесь сделать это с помощью js, вы можете использовать innerHTMLсвойство и установить его в пустую строку.

document.getElementById('masterdiv').innerHTML = '';

1
это был лучший результат в Google при поиске, как очистить div. Спасибо!
Прид

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.