2010-11-02 23 views
1

J'ai besoin d'un peu d'aide pour (probablement) quelque chose de vraiment simple.Comment puis-je appliquer une fonction à plusieurs images dans jQuery?

Je souhaite utiliser un script qui convertit les images de la couleur en niveaux de gris. Je l'ai fait fonctionner partiellement - la première image devient grise, mais la seconde ne le sera pas.

Je sais que cela parce qu'un identifiant ne peut pas être utilisé plusieurs fois:

var imgObj = document.getElementById('grayimage'); 

J'ai essayé ceci:

var imgObj = $(’.grayimage’)[0]; 

Mais cela n'a pas fonctionné. Le changement à getElementByClass ne fonctionne pas non plus. (Avant que les gens demandent, j'ai changé le id en classe dans le tag <img>.)

Je pourrais vraiment utiliser de l'aide ici. Merci d'avance!

+0

'$ (». Grayimage »)' renvoie une liste de tous les objets de la classe 'grayimage'. '$ ('# Grayimage')' retourne l'objet avec l'identifiant 'grayimage'. Donc, la première question à laquelle vous devez répondre est de savoir si 'grayImage' devrait être une classe (il y a plusieurs grayImages) ou un ID (il n'y a qu'une seule grayImage par page). –

Répondre

2
$('.grayimage').each(function(idx,imgObj){ 
    <do your code here> 
}); 
+0

Hmm cela fonctionne à mi-chemin. Je veux dire que cela fonctionne dans IE, mais pas dans FF et le chrome. – Luuk

+0

parce que seulement IE supporte les filtres, grayscaling images dans firefox et chrome n'est pas possible sans l'aide de toile – DoXicK

+0

ok donc j'ai ré-uploadé le code, pouvez-vous me dire ce que j'ai mal fait ou quoi changer? Je n'ai pas beaucoup de connaissances de Javascript – Luuk

2

$ ('.grimimage') vous donne une liste de tous les éléments avec grayimage en tant que classe. Si vous ajoutez '[0]' vous accédez au premier élément, les modifications que vous apportez s'appliqueront uniquement à la première image trouvée avec cette classe.

Vous devez boucle à travers tous les éléments:

var images = $('.grayimage'); 
for(i = 0; i < images.length; i++) { 
    var image = images[i]; 

    // Do stuff 
}