2009-11-21 2 views
2

J'ai un grand div avec beaucoup de petits divs dedans. Dites,Elément précédent le plus proche avec un certain ID (avec prev())?

<div id="parent"> 
<div id="child1"> 
</div> 
<div id="child1"> 
</div> 
<div id="child2"> 
</div> 
<div id="child1"> 
</div> 
<div id="child1"> 
</div> 
</div> 

Si je suis actuellement à la dernière « child1 », comment je dow arriver au sommet le plus child1 avec prev()? Pour moi, ça casse quand il atteint 'child2'.

Répondre

4

Je pense que vous voulez ceci:

$(this).prevAll('.child1').eq(0); 
+0

Hey merci !! C'est exactement ce que je cherche! =) – mathon12

7

Tout d'abord, votre balise HTML n'est pas valide. Il ne devrait pas y avoir plus d'un élément avec le même ID dans un document.

Lire Element identifiers: the id and class attributes

id:

Cet attribut attribue un nom à un élément . Ce nom doit être unique dans un document .

Classe:

Cet attribut assigne un nom de classe ou ensemble de noms de classe à un élément. Tout nombre d'éléments peut se voir attribuer le même nom de classe ou noms. Plusieurs noms de classe doivent être séparés par des caractères blancs .

Vous pouvez utiliser le parent et :firstchild pour obtenir le premier élément dans votre élément parent actuel.

Vous pouvez utiliser quelque chose comme ça si vous êtes actuellement à un enfant de l'élément « parent »

$(this).parent().find("div:first-child"); 
+0

Ok, en fait je suis en utilisant des classes, mais qui échouait si je ID . Et cela échoue aussi. – mathon12

+0

Merci. En fait, en arrivant au premier 'enfant1' je voulais dire en traversant tous les éléments précédents de la classe 'child1' en premier. Pas directement. – mathon12

1
$(this).closest('.parent').find('.child1:first') 

j'ai changé pour les classes, parce que vous vraiment ne devriez jamais avoir un élément d'un ID donné dans une page

+0

Merci. Cela résout en fait le problème que j'ai décrit, mais en div j'ai il ya beaucoup de classes d'enfants. Je voudrais passer à l'élément précédent le plus proche d'une classe donnée. Quelque chose comme $ (this) .prev ('. Child1') mais je veux qu'il saute la classe 'child2'. – mathon12

Questions connexes