Qual è il modo più semplice per ottenere la profondità di un elemento in puro JavaScript o jQuery? Con "profondità" intendo quanti elementi profondi è annidato, o quanti antenati ha.JS/jQuery: ottieni profondità dell'elemento?
risposta
ne dite:
$('#my-element').parents().length
provare qualcosa di simile:
<html>
<head>
<title>MooExample</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("li").click(function() {
alert($(this).parents().length);
});
});
</script>
</head>
<body>
<ul>
<li>moo</li>
<li>foo</li>
<li>fasoo</li>
<li>moasf</li>
<li>moosadg</li>
<li>moo1</li>
<li>moo412</li>
<li>moo613a</li>
</ul>
</body>
</html>
Supponendo non si desidera includere corpo e tag HTML nei genitori di contare l'uso:
$("#element").parents("*").not("body,html").size()
Demo online qui: http://jsfiddle.net/zaJff/
Il mio consiglio sarebbe quello di ripensare il modo in cui risolvete il vostro problema - penso che trovare il numero di generazioni tra i nodi probabilmente non sia il modo migliore per andare, sembra una soluzione che probabilmente si romperà facilmente con le modifiche future al codice.
Se insistete invece, la soluzione (da Cletus, in javascript nativo) sembra abbastanza buono in questa pagina: find number of nodes between two elements with jquery?
Quando la soluzione polarblau sarebbe errata? Ogni elemento può avere un solo genitore, quindi logicamente, se sta contando il numero di antenati, dovrebbe sempre essere corretto. Ho dimenticato perché stavo facendo la domanda anche se ... probabilmente era un cattivo approccio. – mpen
In realtà ora che ci penso, hai ragione, correggendo il mio commento. –
Una nota aggiuntiva. Se si desidera ottenere la profondità relativa ad un certo contesto si può fare:
var depth = $("#my-element","#ContextContainerID").parents("ul").length;
Sopra, sto cercando di quanti UL sono all'interno del contenitore #ContextContainerID
- 1. Ottieni tutti i bambini immediati e niente più in profondità
- 2. Profondità di ricorsione in C# - Quanto in profondità puoi andare
- 3. svn profondità cassa
- 4. Eccezione profondità nel log4j
- 5. SubVersion passa alla profondità
- 6. Immagine profondità Kinect
- 7. profondità bit 16 bit
- 8. Buffer profondità logaritmica
- 9. ricorsiva profondità di dizionario Python
- 10. Completezza di profondità prima ricerca
- 11. Visualizzare il buffer di profondità
- 12. e profondità di lexsort MultiIndex
- 13. Vuoi chiamarlo livello o profondità?
- 14. Scrittura nel buffer di profondità senza test di profondità in OpenGL (non shader)
- 15. Soluzione per scrivere il buffer di profondità/valore di profondità in OpenGL ES 2.0
- 16. limite di profondità constexpr con clang (non sembra funzionare fconstexpr profondità)
- 17. pitone errore funzione ricorsiva: "profondità massima ricorsione"
- 18. IndexOutOfRangeException profondità nelle viscere della NHibernate
- 19. React-Redux di oggetti complessi (profondità) Stato
- 20. Limitazioni della profondità dell'albero di espressione
- 21. QuickSort stima della profondità di ricorsione
- 22. profondità di inlining in compilatore GCC
- 23. conoscere la profondità di un dizionario
- 24. pitone Pickler - profondità di ricorsione superato
- 25. Python: superata profondità di ricorsione superata
- 26. Correggere l'albero di profondità in Python
- 27. Assegnazione di una profondità a ciascun nodo
- 28. Come `ls` solo un livello in profondità?
- 29. Come verificare la profondità di un oggetto?
- 30. Trova la massima profondità di ricorsione
http://stackoverflow.com/ domande/748842/how-to-get-all-element-parents-using-jquery – mplungjan