2010-11-07 8 views
2

J'ai une liste de chaînes avec des chemins vers certains fichiers avec le séparateur "/" qui sont disponibles sur ma page jsp/html. direcomment créer une structure arborescente dynamique avec liste de chemins de chaînes en utilisant javascript

d1/d2/d3/file1.c 
d1/d2/d3/file2.java 
d1/d2/file3.jsp 
d1/d2/file4.asp 
d1/d2/d3/d4/file4.asp 
d11/d22/d33/file5.txt 

La liste ci-dessus des chemins de chaîne sont disponibles sur ma page. J'ai besoin de faire un arbre dynamique avec les données ci-dessus dans la structure de l'arbre ci-dessous en utilisant javascript.

+d1/d2/ 
file3.jsp 
file4.asp 

+d1/d2/d3/ 
file1.c 
file2.java 

+d1/d2/d3/d4/ 
file4.asp 

+d11/d22/d33/ 
file5.txt 

Lorsque je clique sur le chemin commun comme + di/d2 il devrait élargir pour afficher tous les fichiers contenus dans ce répertoire, et quand cliquez à nouveau sur elle doit cacher les fichiers enfants. Simmilairement pour tous les autres nœuds.

+0

J'ai enlevé le tag "ajax" parce que je ne vois pas comment cela a un ajax invovled. Pour la question réelle, votre meilleur pari serait de convertir d'abord ces chaînes en hachages, puis faire une fusion de hachage en profondeur. Puis trouvez un plug-in en ligne pour transformer votre hash javascript en un menu html/js tree. En l'état, votre question n'est pas suffisamment centrée pour vous donner une bonne réponse. Vous n'avez même pas mentionné quel framework javascript vous utilisez (le cas échéant). –

+0

@user pourquoi n'utilisez-vous pas un plugin jquery pour construire l'arborescence ... au lieu de le faire à nouveau – kobe

+0

@user essayer ceci http://www.jstree.com/ – kobe

Répondre

3

Puisque vous n'avez aucun code à nous montrer, je ne vais pas tout écrire pour vous. Juste une vue d'ensemble, pour vous dire la méthode, vous devrez écrire votre propre code:

  1. Stocker les chemins sous forme de chaînes en javascript
  2. Appel string.split («/») sur chacun d'eux et stocker les résultats dans des tableaux
  3. Créer un objet qui contiendra l'arbre
  4. match tous les principaux tableaux nivelées qui sont similaires, puis ajoutez tous les répertoires de haut niveau uniques que les enfants à l'objet créé à l'étape 3.
  5. Continuer processus en utilisant une méthode de ruissellement, en ajoutant des enfants aux enfants des répertoires de premier niveau.
  6. Rendez les résultats probablement sous la forme d'une liste, en ajoutant les enfants aux objets de liste que vous créez, en utilisant de nouveau la méthode de répartition.

Pour référence: Javascript building tree hierarchy

+0

Merci LostInTheCode, Selon votre suggestion J'ai implémenté une structure arborescente en utilisant jquery avec les valeurs codées ahrd de la branche et des nœuds mais incapable de faire les étapes 5 et 6. J'apprécierais vraiment si vous pourriez donner le code snipet aux étapes 5 et 6 comme expliqué par vous. – user499909

Questions connexes