11548 sujets

JavaScript, DOM et API Web HTML5

Hello,

je me suis aperçu d'un soucis avec les objets jquery :

quand je fais :

var Div = $('#foo');  // où #foo existe qu'une seule fois dans la page


pas de problème, j'accède bien aux méthodes jquery, exemple :

Div.css("color","red"); // le texte est rouge


par contre, quand je fais :

var Div = $('.foo');


puis

Div[0].css("color","red"); // renvoit Div[0].css is not a function


Alors ma question, comment 'mettre en cache' plusieurs sélecteurs d'un coup et utiliser les méthodes jquery directement sur eux ?

Merci
Modifié par JimmyWJimmy (05 Apr 2012 - 16:54)
JimmyWJimmy a écrit :
Hello,

je me suis aperçu d'un soucis avec les objets jquery :

quand je fais :

var Div = $('#foo');  // où #foo existe qu'une seule fois dans la page


pas de problème, j'accède bien aux méthodes jquery, exemple :

Div.css("color","red"); // le texte est rouge


par contre, quand je fais :

var Div = $('.foo');


puis

Div[0].css("color","red"); // renvoit Div[0].css is not a function


Alors ma question, comment 'mettre en cache' plusieurs sélecteurs d'un coup et utiliser les méthodes jquery directement sur eux ?

Merci

Regardes du coté de la méthode eq() de JQuery
http://api.jquery.com/eq-selector/

Ca doit donner un truc qui ressemble à ça (à confirmer ...):
$(".foo:eq(0)").css("color","red");
Modérateur
Bonjour, c'est parce qu'un objet jQuery n'est pas un tableau, mais reste un objet jQuery, pour accéder au différents éléments, on peut le faire grâce aux méthode eq ou each :


  var $links = $('a');
  $links.each(function(){
    // bla bla bla
  });
  $links.eq(0).css('color','pink'); // rose c'est chic!
Merci pour vos réponses, c'est ce que je m'étais dit kustolovic, seulement un peu surpris que les méthodes ne soient pas 'descendantes'.

Heureusement que tu peux avoir un tableau rempli d'objets jQuery ! Smiley langue