Que renvoie réellement jquery $?


113

J'ai lu la documentation JQuery, et bien que beaucoup d'attention soit consacrée à ce que vous devez transmettre à la fonction, je ne vois aucune information sur ce qu'elle renvoie réellement .

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

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

Réponses:


76

D'après la description de Rick Strahl :

L'objet jQuery: l'ensemble enveloppé: les sélecteurs renvoient un objet jQuery appelé «ensemble enveloppé», qui est une structure de type tableau contenant tous les éléments DOM sélectionnés. Vous pouvez parcourir l'ensemble enveloppé comme un tableau ou accéder à des éléments individuels via l'indexeur ($ (sel) [0] par exemple). Plus important encore, vous pouvez également appliquer des fonctions jQuery à tous les éléments sélectionnés.

À propos de ne rien renvoyer:

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

Vous obtenez toujours la même chose en retour, qu'elle ait ou non un contenu est la question. Vous pouvez généralement vérifier cela en utilisant .val () (par exemple $ ('. MyElem'). Val ())


1
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 "comme un tableau" - je suppose que c'est le génie de jquery.
harpo

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

14
Pour la question qui m'a amené ici, à savoir comment vérifier si quelque chose a été trouvé, je suis allé avec $ (query) .length , ce qui semble faire l'affaire.
harpo

3
qu'est-ce qu'un tableau comme set .... est-ce un tableau ou un objet ou? ... pouvons-nous être précis?

26

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

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


6

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


4
@harpo: pas du tout; C'est juste que les objets en question sont mal nommés. "L'objet jQuery", alias $vs "un objet jQuery", alias un "ensemble encapsulé".
Sean McMillan le

5

Comme un autre répondant l'a mentionné, il renvoie toujours 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 avec un seul objet).

Si vous souhaitez utiliser l'objet renvoyé "directement", comme dans, en tant qu'élément simple, vous pouvez effectuer l'une des opérations suivantes:

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

3

À partir de la documentation jQuery :

L'objet jQuery lui-même se comporte un peu comme un tableau; il a une propriété length et les éléments de l'objet sont accessibles par leurs indices numériques [0] à [length-1]. Notez qu'un objet jQuery n'est pas réellement un objet Javascript Array, donc il n'a pas toutes les méthodes d'un véritable objet Array tel que join ().


2

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


1
demander! $()ne retourne pas la fonction jQuery (qui est $elle - même) mais retourne un ensemble encapsulé, avec toutes ces méthodes utiles.
Sean McMillan le

1

Mécanisme de sélecteur Jquery

$("..") , le sélecteur jquery, est utilisé pour sélectionner les éléments correspondants.

Valeur de retour

Il renvoie toujours un objet jquery de type tableau, qui a une lengthpropriété,

Méthode d'appel sur l'objet jquery retourné

Les méthodes de jquery pourraient être appelées sur l'objet, et s'appliquer à ces éléments sélectionnés,

Accéder à l'élément d'origine par index

Les éléments sélectionnés sont stockés en tant que propriété de l'objet, leur nom de propriété sont des numéros d'index commençant à 0,
donc accessibles par index, à partir de 0,
après avoir obtenu l'élément d'origine, vous pouvez le traiter comme s'il était passé document.getElementXxx().

Enveloppez un élément d'origine dans un objet jquery

Après avoir obtenu l'élément d'origine, vous pouvez l'envelopper pour en faire un objet jquery, en appelant $(originalEle),
puis vous pouvez appeler des méthodes jquery sur l'objet encapsulé.


0

Selon Firebug, il renvoie un tableau d'objets qui correspondent à votre sélecteur. Mais ce tableau est un objet jQuery, plus de méthodes qu'un simple Array.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.