Come cancellare tutti i contenuti di <div> s all'interno di un <div> parent?


219

Ho un div <div id="masterdiv">che ha diversi figli <div>.

Esempio:

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

Come cancellare il contenuto di tutti i bambini <div>all'interno del master <div>usando jQuery?


6
Ho ricodificato la tua domanda perché non è correlata ad Asp.net MVC (come l'hai taggata) in alcun modo forma o forma.
Robert Koritnik,

Valuta di accettare una risposta che usi .empty(). È il modo più performante per farlo
Kolob Canyon

Risposte:


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

Possiamo clonare l'html e manipolarlo? come var tmp = $ ('<div>') .append ($ ('# masterdiv'). clone ()). remove (). html (); e ottieni i div all'interno di #masterdiv di tmp e cancella il contenuto e ritorna
Prasad,

118
L'utilizzo .empty()sarebbe un'opzione migliore in quanto non è coinvolto l'analisi delle stringhe. Funziona direttamente sul modello a oggetti DOM.
Drew Noakes,

7
empty()cancella anche tutto il contenuto generato con jQuery.
MikkoP,

445

La empty()funzione di jQuery fa proprio questo:

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

cancella il maestro div.

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

cancella tutti i bambini div, ma lascia intatto il maestro.


8
api.jquery.com/empty è vero ma non so perché la risposta di Quentin sia stata accettata :)
Nuri YILMAZ,

5
Questo cancella più di quanto è stato chiesto nella domanda originale: dovresti usare un selettore più specifico .
Ha disegnato Noakes il

4
Caspita, grazie per averlo segnalato 1.5 anni dopo :) Risolto.
Emil Ivanov,

20

Utilizzare la sintassi del selettore CSS di jQuery per selezionare tutti gli divelementi all'interno dell'elemento con id masterdiv. Quindi chiama empty()per cancellare il contenuto.

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

L'uso text('')o html('')causerà l'analisi delle stringhe, il che è generalmente una cattiva idea quando si lavora con il DOM. Prova e usa i metodi di manipolazione DOM che non implicano rappresentazioni di stringhe di oggetti DOM ove possibile.


14

jQuery consiglia di utilizzare ".empty ()", ". remove ()", ". detach ()"

se è necessario eliminare tutti gli elementi nell'elemento, utilizzare questo codice:

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

se è necessario eliminare tutto l'elemento, utilizzare questo codice:

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

io e il gruppo jQuery non raccomandiamo di usare SET FUNCTION come .html () .attr () .text (), che cos'è? è SE VUOI IMPOSTARE TUTTO QUELLO CHE BISOGNA

rif: https://learn.jquery.com/using-jquery-core/manipulating-elements/


12

Se tutti i div all'interno di quel masterdiv devono essere cancellati, è così.

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

altrimenti, devi iterare su tutti i figli div di #masterdiv e verificare se l'id inizia con childdiv.

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

11

Il modo migliore è:

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

1
Questo seleziona tutti gli elementi con classe "masterdiv", non id "masterdiv", come da domande - solo una nota.
Dave,


6
$("#masterdiv > *").text("")

o

$("#masterdiv").children().text("")

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

o

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

Funziona bene per rimuovere i contenuti all'interno di un div


3
Duplica della risposta di Emil Ivanov.
Adrian Enriquez,

6

È possibile utilizzare la funzione .empty () per cancellare tutti gli elementi figlio

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

Per vedere il confronto tra jquery .empty (), .hide (), .remove () e .detach () segui qui http://www.voidtricks.com/jquery-empty-hide-remove-detach/


5

Quando si aggiungono i dati in div in base all'id utilizzando qualsiasi servizio o database, prima provarli vuoti, in questo modo:

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

4
$("#masterdiv div[id^='childdiv']").each(function(el){$(el).empty();});

o

$("#masterdiv").find("div[id^='childdiv']").each(function(el){$(el).empty();});

3

So che questa è una jQuerydomanda correlata, ma credo che qualcuno potrebbe arrivare qui aspettandosi una Javascriptsoluzione pura . Quindi, se stavi provando a farlo usando js, potresti usare la innerHTMLproprietà e impostarla su una stringa vuota.

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

1
questo è stato il miglior risultato su Google durante la ricerca di come svuotare un div. Grazie!
Prid,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.