¿Cómo borrar todos los contenidos de <div> s dentro de un padre <div>?


219

Tengo un div <div id="masterdiv">que tiene varios hijos <div>s.

Ejemplo:

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

¿Cómo borrar el contenido de todos los niños <div>dentro del maestro <div>usando jQuery?


66
Volví a etiquetar tu pregunta porque no está relacionada con Asp.net MVC (como la has etiquetado) de ninguna manera o forma.
Robert Koritnik el

Considere aceptar una respuesta que use .empty(). Es la forma más eficaz de hacerlo
Kolob Canyon

Respuestas:


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

¿Podemos clonar el html y manipularlo? como var tmp = $ ('<div>') .append ($ ('# masterdiv'). clone ()). remove (). html (); y obtener los divs dentro de #masterdiv de tmp y borrar el contenido y volver
Prasad

118
Usar .empty()sería una mejor opción, ya que no se incluye el análisis de cadenas. Funciona directamente en el modelo de objetos DOM.
Drew Noakes

77
empty()También borra todo el contenido que se genera con jQuery.
MikkoP

445

La empty()función de jQuery hace justamente eso:

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

despeja al maestro div.

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

borra todo el niño div, pero deja al maestro intacto.


8
api.jquery.com/empty es cierto pero no sé por qué la respuesta de Quentin aceptó :)
Nuri YILMAZ

55
Esto borra más de lo que se solicitó en la pregunta original: debe usar un selector más específico .
Drew Noakes

44
Wow, gracias Drew por señalar esto 1.5 años después :) Solucionado.
Emil Ivanov

20

Use la sintaxis del selector CSS de jQuery para seleccionar todos los divelementos dentro del elemento con id masterdiv. Luego llame empty()para borrar los contenidos.

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

Usar text('')o html('')provocará un análisis de cadenas, lo que generalmente es una mala idea cuando se trabaja con DOM. Intente y utilice métodos de manipulación DOM que no impliquen representaciones en cadena de objetos DOM siempre que sea posible.


14

jQuery recomienda usar ".empty ()", ". remove ()", ". detach ()"

si necesita eliminar todos los elementos en el elemento, use este código:

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

si necesita eliminar todos los elementos, use este código:

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

i y jQuery group no recomiendan usar SET FUNCTION como .html () .attr () .text (), ¿qué es eso? es SI DESEA CONFIGURAR ALGO QUE NECESITA

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


12

Si todos los divs dentro de ese masterdiv necesitan ser borrados, esto.

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

de lo contrario, debe iterar en todos los hijos div de #masterdiv y verificar si la identificación comienza con childdiv.

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

11

La mejor manera es:

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

1
Esto selecciona todos los elementos con la clase "masterdiv", no la identificación "masterdiv", según las preguntas, solo una nota.
Dave


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

o

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

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

o

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

Funciona bien para eliminar contenidos dentro de un div


3
Duplicado de la respuesta de Emil Ivanov.
Adrián Enríquez

6

Puede usar la función .empty () para borrar todos los elementos secundarios

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

Para ver la comparación entre jquery .empty (), .hide (), .remove () y .detach (), siga aquí http://www.voidtricks.com/jquery-empty-hide-remove-detach/


5

Cuando agregue datos a div por id utilizando cualquier servicio o base de datos, primero inténtelo vacío, así:

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

Sé que esta es una jQuerypregunta relacionada, pero creo que alguien podría llegar aquí esperando una Javascriptsolución pura . Entonces, si estaba tratando de hacer esto usando js, podría usar la innerHTMLpropiedad y establecerla en una cadena vacía.

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

1
Este fue el mejor resultado en Google al buscar cómo vaciar un div. ¡Gracias!
Prid

0

pruébalos si te ayuda.

$('.div_parent .div_child').empty();

$('#div_parent #div_child').empty();


por qué "-1". ¿Solo estaba tratando de ayudar?
Gaurav Kaushik
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.