2010-12-09 4 views
6

Je possède ce jQuery:jQuery parent multiple() appelle

$(this).parent().parent().find(".license_tooltip").stop(true, true).fadeIn(200);

L'objet $(this) est niché dans les deux div s comme ceci:

 
<div> 
    <div> 
     <a href="">$(this) object</a> 
    </div> 

    <div> 
     <a href="">object to fade in</a> 
    </div> 
</div> 

me point que quelqu'un peut dans la bonne direction pour rendre mon jQuery plus simple? La structure présentée ci-dessus est répliquée plusieurs fois, l'utilisation de classes et d'ID est donc impossible.

Répondre

16

Vous pouvez utiliser une classe (ou tout autre attribut sélectionnable) et .closest() à prétendre au parent que vous voulez, comme ceci:

<div class="container"> 
    <div> 
     <a href="">$(this) object</a> 
    </div> 

    <div> 
     <a href="">object to fade in</a> 
    </div> 
</div> 

Et pour le script:

$(this).closest(".container").find(".license_tooltip").stop(true, true).fadeIn(200); 
+0

Merci: -) Je vais ajouter des classes à mon contenant 'div's – Bojangles

+0

Merci aussi, même si je suis en retard à la fête! J'ai essayé de faire le parent du parent etc. etc. dans une structure de table, en oubliant de SIMPLY (comme vous l'avez fait) chercher le parent le plus proche dans la structure qui a une certaine classe. Le rend beaucoup plus facile et plus propre! – Malachi

1

utilisation parents()

$(this) 
    .parents('selector for the parent you need to look in') 
    .find(".license_tooltip") 
    .stop(true, true) 
    .fadeIn(200); 
4

Vous pouvez utiliser le .parents([ selector ])here is a link

Il traversera plus d'un parent jusqu'à.