11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je me permets de poster ce message car j'ai une question.
Dans mon fichier JS, je souhaite récupérer des div qui ont la classe CSS .bloc

Pour ce faire, je fais ceci :
let blocs = document.getElementsByClassName('bloc');


Ainsi, j'obtiens un "tableau" dont les index correspondent aux divs .bloc.

Ma question. En jQuery, est-il possible d'obtenir la même chose (tableau) ?

Je pensais faire ça :
let $blocs = $('.bloc');


Toutefois, j'ai un message d'erreur dans la console lorsque je saisis
$bloc[1].fadeIn('slow');


global.js:11 Uncaught TypeError: $bloc[1].fadeIn is not a function

Code d'exemple (CodePen).

Merci Smiley smile
Modifié par MickFR (06 Jun 2019 - 15:13)
Salut

Si tu connais l'emplacement de tes élements à l'avance, utilise le sélecteur pour cela.

$(".bloc:nth-child(1)").fadeIn("slow");


ou alors tu en fais un objet jquery

$(blocs[1]).fadeIn("slow")

Modifié par JENCAL (06 Jun 2019 - 15:34)
Administrateur
Bonjour,

si tu veux accéder au (N+1)ème élément de ton set d'éléments, tu peux utiliser .eq(N)

$blocs.eq(1).css({backgroundColor: 'pink'}); // Le 2e

Modifié par Felipe (06 Jun 2019 - 15:40)
Je ne sais pas si c'est plus lisible de mettre le eq1 dedans ou dehors, je crois que j'aurai eu tendance a le mettre plutôt dedans :

$('#btn').on('click', function(){
  $('.bloc:eq(1)').fadeIn('slow');
});
Salut,

Merci de votre aide.

Je vais essayer avec vos solutions.
Je vous dirai si j'ai réussi à me dépatouiller Smiley smile