2009-11-01 3 views
2

donné un parent, comment puis-je obtenir ses descendants afin que leur hiérarchie est conservée.comment obtenir descendant complète hiearchy?

parent > des1 > des2 > des3 

parent.find('*') retourne simplement pas dans l'ordre. il donne

find('des1, des2. des3') 

ce que je pense était

find('des1 des2 des3') 

Répondre

1

Il y a beaucoup de façons de traverse utilisant jQuery. Voici une approche. J'utilise le balisage suivant:

<div id="demoParent"> 
    <div id="des1"> 
    <div id="des2"> 
     <div id="des3"> 
     hello world 
     </div> 
    </div> 
    </div> 
</div> 

J'utilise cette fonction récursive pour traverser vers le bas et retourner une chaîne avec la hiérarchie:

function getHierarchy(selector) { 
    // temp variable to hold the hierarchy as an array 
    var hierarchy = []; 
    // if selector element has a :first-child... 
    while ($(selector).children(':first-child').length > 0) { 
     // then push it into the array and then traverse into the :first-child 
     hierarchy.push($(selector).children(':first-child').attr('id')); 
     selector = $(selector).children(':first-child'); 
    } 
    // when there are no more :first-child elements, return string 
    // formatted like elemA > elemB > elemC > elemD 
    return hierarchy.join(' > '); 
} 

Quand j'appelle ce code comme ceci: alert(getHierarchy('#demoParent'));

Je reçois ce résultat en alerte: des1 > des2 > des3

Questions connexes