2009-09-18 7 views
1

Je cherche à utiliser Javascript ou jQuery pour extraire la balise alt de l'image spécifique qui a été cliquée dans le code HTML et copier sa valeur dans un champ de légende.Extraction de la valeur d'alt

function change_image(diff){ 
    var newAlt = $(this).attr('alt'); 
    position = (position + diff + hrefs.length) % hrefs.length; 
    revealImage(hrefs[position]); 
    $nav.find('.counter').html(newAlt); 
} 

C'est ce que j'ai jusqu'ici et cela ne fonctionne pas.

+1

en utilisant « attr » pour récupérer la valeur alt d'une image et « html » pour afficher la valeur semble être correcte. Quoi et où exactement est votre problème? – ybo

+0

Le code que j'ai posté ne tire pas le tag alt. Lorsque j'exécute ma page, la zone de contenu dans laquelle la balise alt doit être affichée est vide. Je ne sais pas exactement où se situe le problème. Je vais essayer de lancer une alerte simple pour voir si elle tire au moins la valeur alt. Peut-être que cela m'aidera à déterminer si le problème concerne la récupération de la valeur alt ou l'affichage de la valeur. – Slevin

+0

OK. Mon alerte a renvoyé une valeur "indéfinie". Donc, le problème doit résider dans la récupération de l'étiquette alt. – Slevin

Répondre

1

Vous utilisez le mot-clé this dans votre fonction, il fera référence à l'élément qui a déclenché l'événement si vous liez comme ceci:

$('img').click(change_image); 

Mais puisque vous avez un argument dans votre fonction, je pense que vous invoquez avec un appel de fonction, de cette façon, le contexte (le mot-clé this) ne se conserve pas, vous pouvez:

$('img').click(function() { 
    change_image.call(this, 5); // preserve the context and pass a diff value 
}); 
+0

J'utilise maintenant cette ligne: var newAlt = $ .attr ($ ('img'). Get (0), 'alt'); Il récupère l'étiquette alt d'une image statique et j'ai été incapable d'utiliser la (cette) fonction pour tirer l'étiquette alt de l'image spécifiquement cliquée. Un conseil? – Slevin

Questions connexes