Comment passer à travers un ensemble d'objets jquery et .hide () chacun d'eux

J'essaie de parcourir un ensemble d'objets jquery que j'ai créés qui sont cachés lorsqu'ils sont cliqués. À l'heure actuelle, je ne suis pas sûr de savoir où je me trompe et je me demandais si quelqu'un pouvait expliquer ce que je dois faire pour que cela fonctionne?

J'ai créé un violon ici http://jsfiddle.net/hd5qa/3/

Tous les conseils ont beaucoup apprécié

Kyle

Les problèmes avec votre violon étaient les suivants:

1) Vous n'avez pas inclus la bibliothèque jQuery.

2) Vous n'avez pas fermé correctement each boucle (parenthèses manquantes).

3) Vous avez manqué le sélecteur d' id # de "myButton".

Voici un violon de travail mis à jour .

Notez cependant que vous pouvez simplement faire ceci:

 $("#blue, #red, #green, #black, #purple, #orange").hide(); 

Ou mieux, placez tous ceux dans un élément parent contenant, et supprimez simplement cela, ou utilisez $("#parent div").hide(); .

Vous pouvez stocker le résultat de cette sélection dans une seule variable, plutôt que les 6 que vous avez actuellement, car les méthodes jQuery ont tendance à fonctionner sur chaque élément dans l'ensemble assorti sans avoir besoin d'une boucle.

Y a-t-il une raison pour laquelle vous voulez faire cela à travers un éventail d'objets?

Vous pouvez simplifier tout en ajoutant vos sélecteurs comme ceci:

 $('#blue, #red, #green, #black, #purple, #orange').hide(); 

Il y a trois problèmes:

  • Vous exécutez le code avec la bibliothèque MooTools au lieu de jQuery.
  • Vous avez oublié # dans le sélecteur pour le bouton.
  • Vous avez oublié a ); À la fin de la boucle $.each .

http://jsfiddle.net/Guffa/hd5qa/5/

 $(myArray).each(function(index, element){ element.hide(); }); 

Vous voudrez peut-être essayer quelque chose comme ça!

 var myArray = [$blue, $red, $green, $black, $purple, $orange]; $('#myButton').click(function() { $(myArray).each(function(index, element) { $(element).hide(); }); }); 

Vous pouvez le voir en cours d'exécution ici: http://jsfiddle.net/hd5qa/3/

Je préfère cette façon:

 var elements = $("div"); var numOfElements = elemenets.length; for(var i=0; i<numOfElements; i++) { var element = elements.eq(i); element.hide(); }