2010-01-21 5 views
2

Comment estomper toutes les images de la classe bMenu qui ne sont pas # b2 avec jQuery? Merci.Fading d'images dans jQuery

<div class="bMenu" id="b1"><img src='b1.jpg'></div> 
<div class="bMenu" id="b2"><img src='b2.jpg'></div> 
<div class="bMenu" id="b3"><img src='b3.jpg'></div> 

Répondre

1
$('img', '.bMenu:not(#b2)').fadeOut(); 
+0

le DIV signifie qu'il est le contexte de l'IMG (deuxième paramètre à la fonction jQuery), cette réponse devrait fonctionner aussi vôtre gnarf :) –

+0

J'ai édité mon poste sans le noter, désolé à ce sujet. Donc, le commentaire de gnarf était correct .. –

+0

@juraj - ouais il avait '$ ('img: not (# b2)', '.bMenu');' quand j'ai posté ce commentaire :) – gnarf

2

réponse littérales:

$(".bMenuL:not(#b2) img").fadeOut(); 

En supposant que vous voulez vous assurer que le #b2 img est présenté ainsi:

$("#b2 img").fadeIn(); 
+0

J'aimerais vraiment savoir pourquoi cela a eu un -1 – gnarf

0

Essayez ceci:

#('.bMenu > img').each(function(it){ 
    if(it.attr('id') != 'b2'){ 
     it.fadeOut(); 
    } 
}); 

Peut-être un moyen de le faire avec des sélecteurs purs, mais cela devrait fonctionner.

ajouté plus tard:

Ok, je suis allé et a fait un test ... voici ce que je suis venu avec:

$('div[id!=b2].bMenu > img').each(function(){ 
    $(this).fadeOut(); 
}); 

Ce sélecteur retourne deux images, pas celui avec b2.

+0

Encore une fois, '# b2' est le' div' pas le 'img' – gnarf

+0

Oops ... puis it.parent() .attr ('id')! = 'b2' ou quelque chose de similaire. Je pense que les autres réponses devraient fonctionner aussi. – cjstehno

+0

Voir ma section "ajoutée plus tard" pour une version mise à jour. – cjstehno

1

Essayez de

$('.bMenu:not(#b2) img').fadeOut('slow'); 
1

tout faire à la fois avec enchaînant:

$("#b2 img").show().parent().siblings(".bMenu").find("img").fadeOut(); 
+1

Belle chaîne là-bas. – gnarf