94 votes

Comment sélectionner un seul élément enfant à l'aide de jQuery?

Comment utiliser jQuery pour sélectionner un seul élément enfant? J'ai examiné l'API Traversing et je sais que je peux sélectionner tous les éléments img enfants immédiats de ce type:

 $(this).children('img');
 

Et pour sélectionner le premier élément enfant img , je pourrais utiliser un indice comme celui-ci:

 $(this).children('img')[0];
 

Mais je suppose que je suis un peu surpris de ne pas pouvoir faire ça:

 $(this).child('img'); // no subscript, returns single element
 

Ou ai-je raté quelque chose?

140voto

Greg Points 3197

Je pense que ce que vous voulez faire est la suivante:

 $(this).children('img').eq(0);
 

cela vous donnera un objet jQuery contenant le premier élément img, alors que

 $(this).children('img')[0];
 

vous donnera l'élément img lui-même.

53voto

Josh Stodola Points 42410

Non. Chaque fonction jQuery renvoie un objet jQuery, et c'est comme cela que ça fonctionne. C'est une partie cruciale de la magie de jQuery.

Si vous souhaitez accéder à l'élément sous-jacent, vous avez trois options ...

  1. Ne pas utiliser jQuery
  2. Utilisez [0] pour le référencer
  3. Étendez jQuery pour faire ce que vous voulez ...

     $.fn.child = function(s) {
        return $(this).children(s)[0];
    }
     

8voto

Anatoliy Points 7775

Peut-être de cette façon?

 $('img', this)[0]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X