¿Alguien sabe cómo vaciar el contenido de un div (sin destruirlo) en JavaScript?Cómo vaciar el contenido de un div
Gracias,
Bruno
¿Alguien sabe cómo vaciar el contenido de un div (sin destruirlo) en JavaScript?Cómo vaciar el contenido de un div
Gracias,
Bruno
Si el div se ve así:
<div id="MyDiv">content in here</div>
Entonces este Javascript:
document.getElementById("MyDiv").innerHTML = "";
hará que se vea como Thi s:
<div id="MyDiv"></div>
funcionó muy bien. Esto eliminó JS (un mapa OpenLayers en mi caso) de la div mientras que $ ('# ejemplo') vacía (.); no eliminó JS. –
Gracias. ¡Me funcionó en 2017 también! –
Eso lo destruye. – JackHasaKeyboard
Si estás usando jQuery ...
$('div').html('');
o
$('div').empty();
Preguntó en javascript no jquery. – easwee
En jQuery sería tan simple como $('#yourDivID').empty()
Ver el documentation.
La pregunta original no hace referencia a jquery. Deje de suponer que las operaciones básicas de javascript requieren algún tipo de biblioteca externa para cada tarea simple. – mopsyd
@mopsyd oh chico, ¿es esto necesario 5 años después de la respuesta? :) jQuery fue una especie de estándar en 2011 y para su información todavía se usa ampliamente. jQuery es javascript por cierto. si no sabía ... –
también lo era 'document.querySelector (" # myDiv "). InnerHTML =" ";' – mopsyd
Si diciendo sin destruirlo, que quiere decir a una mantener una referencia a los niños, que puede hacer:
var oldChildren = [];
while(element.hasChildNodes()) {
oldChildren.push(element.removeChild(element.firstChild));
}
En cuanto al etiquetado originales (html css
) de su pregunta:
No puede eliminar contenido con CSS. Solo puedes esconderlo. P.ej. puede ocultar todos los niños de un determinado nodo con:
#someID > * {
display: none;
}
Esto no funciona en IE6 aunque (pero se puede usar #someID *
).
Una forma alternativa de hacerlo es:
var div = document.getElementById('myDiv');
while(div.firstChild)
div.removeChild(div.firstChild);
Sin embargo, utilizando document.getElementById('myDiv').innerHtml = "";
es más rápido.
Ver: Benchmark test
N. B.
Ambos métodos preservan la div.
¿Estoy malinterpretando esa prueba? Para todos los navegadores, la primera forma tiene mayores ops/seg, lo que significa que es más rápido. La segunda forma es más lenta y complicada. – pucky124
No, tienes razón. Lo leí mal Me equivoqué operaciones por segundo, por tiempo total. Actualizaré mi respuesta. –
mediante jscript? solo haciendo que no sea visible? exactamente, que es lo que quieres? – ITroubs
con JavaScript? y jQuery? –
¡Gracias a todos por sus respuestas! – Bruno