cómo se pueden obtener todos los nodos hoja, digamos divs, del DOM? Estoy tratando de pensar en una solución óptima, si no hay un selector fácil y mágico para esto. Pensé en usar "reachElem.find ('div'). Length == 0" pero no estoy seguro de si esta es la dirección correcta. ¿Alguna idea? Gracias¿Cuál es la forma más eficiente de obtener nodos de hoja con jQuery
14
A
Respuesta
32
Usted puede ir con selector siguiente
$('div:not(:has(*))')
Por encima de selector se seleccionará todos los DIVs que no tienen hijos.
10
Si realmente quieres algo eficiente, evitar el complejo :not(:has(*))
selector:
$("div").filter(
function(index) {
var isLeaf = $(this).children().length === 0;
return isLeaf;
}
);
descubrí que es dos veces tan eficiente como la sugerencia de eHussain, o incluso más rápido.
+0
Una manera más rápida que '.children()' es '.find (': first')'. –
Cuestiones relacionadas
- 1. ¿Cuál es la forma más eficiente de ordenar un NSSet?
- 2. ¿Cuál es la forma más eficiente de vaciar un elemento con jQuery
- 3. ¿Cuál es la forma más eficiente de crear ListBuffer vacío?
- 4. ¿Cuál es la forma más eficiente de obtener un arenero limpio de git?
- 5. ¿Cuál es la forma más eficiente de obtener el primer día del mes actual?
- 6. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 7. Inicializando ... ¿cuál es más eficiente?
- 8. ¿Cuál es la expresión regular más eficiente?
- 9. ¿Cuál es la forma más eficiente de administrar grandes conjuntos de datos con Javascript/jQuery en IE?
- 10. ¿Cuál es la forma más eficiente de crear un sistema de permisos?
- 11. ¿Cuál es la forma más eficiente de evitar operaciones duplicadas en una matriz de C#?
- 12. ¿Cuál es la forma más eficiente de almacenar y consultar árboles?
- 13. ¿Cuál es la forma más eficiente de hacer matrices de bytes inmutables en Scala?
- 14. ¿Cuál es la forma más eficiente de obtener el código fuente de la página web en C?
- 15. Cuál es la forma más eficiente de hacer operaciones bit a bit en una matriz C
- 16. ¿Cuál es la forma más eficiente de mostrar marcos de video decodificados en Qt?
- 17. ¿Cuál es la forma más eficiente de almacenar una matriz de enteros en una columna MySQL?
- 18. Java: ¿Cuál es la forma más eficiente de sincronizar una ArrayList?
- 19. ¿Cuál es la forma más eficiente de ordenar las estructuras de C++ a C#?
- 20. ¿Cuál es la forma más eficiente de generar las combinaciones de un conjunto en python?
- 21. ¿Cuál es la forma más eficiente de crear un sistema de bombilla de foro (no leída)?
- 22. ¿Cuál es la forma más eficiente de manejar rechazos de "importación de hg"?
- 23. ¿Cuál es la forma más eficiente de hacer tabla de consulta en C#
- 24. ¿Cuál es la forma más eficiente de administrar un gran conjunto de líneas en OpenGL?
- 25. ¿Cuál es la forma más eficiente de formatear la siguiente cadena?
- 26. ¿Cuál es la forma más simple de obtener sangría XML con saltos de línea de XmlDocument?
- 27. ¿Cuál es la forma más eficiente de implementar Haskell's foldl1 en J?
- 28. ¿Cuál es el estilo de CSS más rápido/más eficiente
- 29. ¿Cuál es la forma más eficiente de calcular el mínimo común múltiplo de dos enteros?
- 30. ¿Cuál es la forma más eficiente de iterar a través de una lista en python?
Gracias. ¿También se aplica si quiero encontrar todos los div que son el "último" elemento div en el árbol? No estoy seguro si lo estoy explicando correctamente. Digamos que eliminas todos los elementos que no son divs del DOM. Ahora sería lo mismo que pedir todas las hojas .. – Ricardo
@Ricardo, cualquier elemento DOM sin hijos es una hoja. Si solo desea buscar hojas debajo de un elemento particular, primero seleccione el elemento y luego ponga el selector de eHussain en un método .find() para buscar todos los antepasados. – Soviut
gracias Soviut, pero eso no es lo que quise decir. Quiero decir que quiero seleccionar "todos" divs en el DOM que no tienen más "divs" como niños. Básicamente todos los divs del nivel más bajo ... – Ricardo