2010-11-18 5 views
0

Salut, j'ai que fragment de code HTMLjQuery Un problème tout en trouvant un élément enfant

<span class="container"> 
    <span class="inner"> 
     <span class="img_class"> 
      <img id=img1" /> 
     </span> 
     <span class="strip"></span> 
     <span class="abc_class"></span> 
    </span> 
</span> 

lorsque l'utilisateur clique sur le <span class="abc_class"></span>, je veux obtenir le closest<span class="img_class"> et son ID de <img /.>

Pour fais, j'essaie

var myId = jQuery($(this).closest('.img_class')).find("img").attr("id"); 

$(this) est que cliqués <span class="abc_class">Le numéro myId est indéfini. Pourquoi ?

Répondre

2

Vous pouvez simplement utiliser .siblings() ici, comme ceci:

var myId = $(this).siblings('.img_class').find("img").attr("id"); 

Pour la Pourquoi? partie: parce qu'il n'y a pas .thumb-img dans votre balisage ... aussi il n'y a pas besoin de re-wrap le résultat, vous pouvez simplement continuer la chaîne.

+0

ou '.children' (http://api.jquery.com/children/) –

0

le le plus proche La fonction jQuery recherche l'élément le plus proche correspondant au sélecteur, mais uniquement parmi les ancêtres de la sélection en cours. cf jquery.closest documentation

Ainsi, vous ne pouvez pas utiliser le plus proche pour trouver ce qui ressemble à un frère.

La réponse de Nick va certainement vous aider à résoudre votre problème.

Questions connexes