¿Cuál es la forma más eficiente de vaciar un elemento con jQuery?

Todos estos lo hacen, pero ¿cuál es la forma más eficiente?

$(selector).html(''); $(selector).text(''); $(selector).children().remove(); 

Ver http://api.jquery.com/empty

 $(selector).empty(); 

Esta es definitivamente la forma más clara, y casi definitivamente la más eficiente.

Dado que es jQuery-internal, es probablemente más eficiente que .children().remove() , y ciertamente no es menos eficiente.

Tendría que pensar que .html('') y .text('') son menos eficientes ya que invocan analizadores html en lugar de solo tratar con nodos dom como los otros métodos. E incluso si resultaran ser más eficientes, cualquier ganancia en eficiencia se vería superada fácilmente por las ganancias en la claridad del uso de empty (), a menos que realmente necesite optimizar esa sección por una razón específica (en cuyo caso yo simplemente compararía todos los puntos). las opciones).

Además, la respuesta de @Ben Lee , si desea la forma más rápida si muestra su nuevo contenido, puede considerar .detach() :

 var $elem = $(selector); var $detached = $elem.children().detach(); $elem.html('new content'); $detached.remove(); 

Esto difiere la limpieza de datos hasta después de que se muestre el nuevo contenido. No he probado el rendimiento, pero estoy bastante seguro de que verá mejoras al eliminar grandes cantidades de contenido.