2009-11-09 8 views
3

J'ai du code HTML qui ressemble à ceci:

<div> 
    <div class="value"> 
    <a href="#" class="clicker">Some Value</a> 
    </div> 
    <div class="heading"> 
    Some Name<img src="loading.gif" style="visibility:hidden"> 
    </div> 
</div> 

Cela pourrait répéter plusieurs fois, selon la façon dont doivent figurer de nombreuses valeurs et rubriques. En utilisant jQuery, j'ai attaché une fonction à se produire lorsque l'on clique sur a.clicker. Dans le cadre de ce qui se passe, je voudrais appeler show() sur l'img .heading ci-dessous. Cependant, je ne peux pas comprendre comment cela est censé être sélectionné. J'ai marqué la ligne que je pense devrait faire, mais il ne montre pas l'img du tout. J'ai été penché sur la documentation et adoucir pendant quelques heures sans succès.

Merci pour toute aide!

+0

@ Tim: dont l'un des exemples de @ cballou travaillé? Le 1er ou le 2ème? –

Répondre

12

Vous avez juste quelques choses au mauvais endroit. Très proche cependant.

$('a.clicker').live("click", function() { 
    $(this).parent().parent().find('.heading img').show(); 
}); 

Cela pourrait aussi être résolu une deuxième façon:

$('a.clicker').live("click", function() { 
    $(this).parent().next('.heading img').show(); 
}); 
+1

Ne pas frapper cette réponse ou quoi que ce soit, mais je trouve l'utilisation parent() très hacky. Si le dom change de quelque façon que ce soit, il pourrait facilement se casser. Cela étant dit, le recours à l'utilisation des attributs de données et des champs d'identification est probablement un moyen plus sûr. – relipse

Questions connexes