2009-08-05 10 views
-1

Je travaille à l'intérieur d'un iterator jQuery each:Eléments de comparaison DOM avec jQuery

$('p').each(function(){ ... });

J'aimerais créer une expression qui est évaluée à vrai lorsque:

  • $(this) est le dernier p élément
  • portée est $(this).parent()
  • $(this) doit être un enfant direct de $(this).parent()
  • $(this) est pas nécessairement le dernier enfant direct de $(this).parent()

Voici quelques scénarios, avec le p souhaité marqué par des astérisques:

<div> 
    <p>div1 p1</p> 
    <p>div1 p2</p> 
    <p>div1 p3***</p> 
</div> 

<div> 
    <p>div2 p1***</p> 
    <span>div2 s1</span> 
</div> 

<div> 
    <p>div3 p1***</p> 
    <div> 
    div3 d1 
    <p>div3 p2</p> 
    </div> 
</div> 

I Je posterais mes tentatives de solution, mais il y en a eu trop. Merci pour l'aide.

Répondre

2

Vous pouvez utiliser un sélecteur comme celui-ci:

$('body > div').each(function() { 
    $(this).children('p:last').each(function() { /* ... */ }); 
}); 

qui renverrait tous vos recherchés <p> tags. Voici une démo: http://jsbin.com/orage | See Source


Vos exigences initiales ne fait aucun sens.

$(this) doit être un enfant direct de $(this).parent()

$(this) est toujours un enfant direct de $(this).parent() par définition de ce parent() fait.

Questions connexes