125 votes

Que renvoie réellement jquery $ ?

J'ai lu la documentation de JQuery, et bien qu'une grande partie de l'attention soit consacrée à ce qu'il faut faire passer la fonction, je ne vois pas d'information sur ce qu'elle fait réellement renvoie à .

En particulier, renvoie-t-il toujours un tableau, même si un seul élément est trouvé ? Renvoie-t-il null si rien n'est trouvé ? Où cela est-il documenté ?

Je comprends que les méthodes jquery peuvent être appliquées à la valeur de retour, mais que faire si je veux juste utiliser la valeur de retour directement ?

84voto

Ian Robinson Points 8666

De Description de Rick Strahl :

L'objet jQuery : L'ensemble enveloppé : Les sélecteurs renvoient un objet jQuery appelé connu sous le nom de "wrapped set", qui est un structure de type tableau qui contient tous les éléments du DOM sélectionnés. Vous pouvez itérer sur le wrapped set comme un tableau ou tableau ou accéder à des éléments individuels via l'indexeur ($(sel)[0] par exemple). exemple). Plus important encore, vous pouvez également appliquer des fonctions jQuery à tous tous les éléments sélectionnés.

A propos de ne rien rendre :

Renvoie-t-il toujours un tableau ? Renvoie-t-elle null ?

Vous obtenez toujours la même chose en retour, la question étant de savoir si elle a un contenu ou non. En général, vous pouvez le vérifier en utilisant .val() (par exemple, $('.myElem').val()).

1 votes

Super, merci... c'est très utile. Je ne savais pas qu'un objet défini par l'utilisateur pouvait en même temps être aussi "semblable à un tableau" - je suppose que c'est le génie de Jquery.

0 votes

Je viens également de modifier et d'ajouter le lien complet vers l'article de Rick Strahl - c'est une bonne lecture.

17 votes

Pour la question qui m'a conduit ici, à savoir comment vérifier si quelque chose a été trouvé, j'ai opté pour $(query).length ce qui semble faire l'affaire.

27voto

John Millikin Points 86775

Il ne renvoie pas un tableau, mais un objet jQuery. L'objet jQuery est ce qui contient toutes les méthodes spéciales de jQuery.

Il ne renvoie jamais null, ou un autre type. Si un élément est trouvé, l'objet jQuery aura un seul enfant. Si aucun élément n'est trouvé, l'objet jQuery sera vide.

9voto

TM. Points 20051

Comme l'a mentionné un autre répondant, il toujours renvoie l'objet jQuery.

Cet objet contient toujours un tableau d'éléments (même s'il s'agit d'un tableau vide, ou d'un tableau contenant un seul objet).

Si vous souhaitez utiliser l'objet renvoyé "directement", c'est-à-dire comme un élément ordinaire, vous pouvez procéder de l'une des manières suivantes :

$('selector')[0] // element
$('selector').get(0) // element
$('selector').length // number of elements in the array

6voto

Andrew Hare Points 159332

La fonction jQuery (c.-à-d. " $ ") renvoie toujours un objet jQuery dans chaque instance.

4 votes

@harpo : pas du tout ; c'est juste que les objets en question sont mal nommés. L'"objet jQuery", alias $ par opposition à "un objet jQuery", alias un "ensemble enveloppé".

2voto

Stefan Kendall Points 28274

Le fait que $() renvoie toujours la fonction jQuery vous permet d'enchaîner judicieusement les appels de fonction jQuery.

1 votes

Demandez ! $() ne renvoie pas la fonction jQuery (qui est $ ) mais renvoie un ensemble enveloppé, avec toutes ces méthodes utiles.

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