2010-07-21 1 views
0

Comment remplacer un attribut dans une balise spécifique dans une classe/ID connue?jQuery remplacer l'attribut dans la balise dans l'ID de classe connu

exemple, remplacer le src dans img avec un autre fichier:

<div class="apple" id="poisoned"> 
<img border="0" width="25" height="25" src="default.png"></div> 

Mais il y a aussi d'autres éléments avec le même id ...

<div class="pear" id="poisoned"><img border="0" width="25" height="25" src="default.png"></div> 

Supposons que vous voulez juste mettre à jour le image dans apple, comment le sélectionnez-vous en utilisant jQuery?

Voici mon essai jusqu'à présent (* Edition - travaux)

$(".apple[id=poisoned] img").attr('src','replaced.png'); // not working 
  • Edition - Il y a plusieurs pommes et poires et autres fruits sur la page ... Chaque fruit empoisonné agit de même, mais pas tous devrait être empoisonné en même temps! (Les multiples finiront par être empoisonnés quand on les cliquera ...) Il n'y a qu'un fruit empoisonné par type de fruit! (Par exemple seulement 1 empoisonnée pomme, seulement 1 poire empoisonnée, etc.)
  • Edit 2 - En fait, mon essai ci-dessus fonctionne ... erreur de code était en quelque chose d'autre>>
+0

J'ai essayé. $ Attr ('src', 'replaced.png') ("pomme [id = empoisonné] img") - ne fonctionne pas – ina

+0

mea culpa - en fait, les travaux ci-dessus! erreur dans quelque chose d'autre – ina

Répondre

2

Si je suis la compréhension. vous correctement,

$('#poisoned img').attr('src', 'newimage.png'); 

Si vous préférez sélectionner par classe,

$('.apple img').attr('src', 'newimage.png'); 

mais je pense que vous avez votre classe et ID confus. Les ID sont supposés toujours uniques alors que les classes ne le sont pas; vous semblez les mettre en œuvre dans l'autre sens.

+0

légèrement plus compliqué (édité ci-dessus pour plus de clarté, sry!) - Et s'il y a plusieurs instances de la même classe? – ina

+0

@ina - Les ID doivent toujours être uniques, par définition. Si ce n'est pas unique, il doit plutôt être une classe. – Matchu

+0

hm, comment redéfiniriez-vous la classe/id dans ce cas? – ina

0

Quelque chose comme:

$("div#poisoned img").attr('src','newimage.png') 
Questions connexes