2010-09-27 2 views
-2

Étant donné un élément enfant, existe-t-il un moyen simple de déterminer combien d'étiquettes parents le séparent d'un sélecteur donné? Quelque chose comme .closest(selector) qui renvoie le nombre d'appels parent() requis pour atteindre un élément sélectionné par le sélecteur donné.Comment puis-je déterminer l'imbrication profonde d'un élément enfant dans un parent?

Une mise en œuvre (non testé) de ce que je cherche:

$.fn.distance = function(selector) { 
    var $parent = $(selector); // TODO check that element exists 
    var $current = $(this); 
    var depth = 0; 
    while ($current != $parent) { 
    $current = $current.parent(); 
    ++depth; 
    } 
    return depth; 
} 

Répondre

8
$element.parentsUntil("selector").length 
4

Voir la méthode .parentsUntil().

var seperatingTags = $(something).parentsUntil('div').size(); 
Questions connexes