Tengo una lista, solo quiero eliminar todos los nodos secundarios de ella. ¿Cuál es la forma más eficiente de usar jquery? Esto es lo que tengo:¿Eliminar todos los nodos secundarios de un padre?
<ul id='foo'>
<li>a</li>
<li>b</li>
</ul>
var thelist = document.getElementById("foo");
while (thelist.hasChildNodes()){
thelist.removeChild(thelist.lastChild);
}
¿Hay un atajo en lugar de eliminar cada elemento, uno cada vez?
----------- Editar ----------------
Cada elemento de la lista tiene algunos datos que se le atribuye, y un controlador de clic de esta manera:
$('#foo').delegate('li', 'click', function() {
alert('hi!');
});
// adds element to the list at runtime
function addListElement() {
var element = $('<li>hi</hi>');
element.data('grade', new Grade());
}
finalmente podría añadir botones por elemento de la lista también - lo que parece que vacía() es el camino a seguir, para asegurarse de que no hay pérdidas de memoria?
¿Eficiente en qué términos? Rendimiento, legibilidad? – Gumbo
Agregando a las preguntas de @ Gumbo, ¿qué tan preocupante es la memoria también? ¿Estos artículos tienen controladores de eventos vinculados? –
Dada la respuesta actualizada, sí '.empty()' sería el camino a seguir, borrar los datos de '$ .cache' que' element.data ('grade', new Grade()); 'agrega –