/ / pourquoi un sélecteur jQuery renvoie-t-il un tableau au lieu de l'élément lui-même? - javascript, jquery, html, jquery-selectors

pourquoi un sélecteur jQuery renvoie-t-il un tableau au lieu de l'élément lui-même? - javascript, jquery, html, jquery-selectors

Si j'ai un balisage qui ressemble à:

<div class="box">
</div>

pourquoi faire un sélecteur jQuery$(".box") renvoyer l'élément dans un tableau?

Je reçois une sortie dans la console en tant que:

[<div class="box"></div>]

et pas:

<div class="box"></div>

Réponses:

2 pour la réponse № 1

Un sélecteur (valide) ne correspond pas à un seul élément, mais il est garanti à représenter un ensemble d'éléments appariés cela peut

  • être vide,
  • avoir un élément, ou
  • avoir plus d'un élément.

Cet ensemble est mieux représenté par un objet de collection contenant zéro ou plusieurs éléments.

Si vous aviez un balisage composé de plusieurs .box élément, que voulez-vous que jQuery renvoie, si ce n’est une collection contenant les deux éléments? document.querySelector() est différent en ce que le méthode est conçu pour renvoyer le premier élément correspondant par spéc. C'est pourquoi document.querySelectorAll() existe (ce que jQuery utilise en interne avant de mettre en œuvre sa propre implémentation).


0 pour la réponse № 2

Comme ce n’est pas un tableau, c’est un objet jQuery semblable à un tableau. Vous pouvez utiliser l'objet qui $() retourne comme vous le feriez quand vous enchaînez vos méthodes comme $().css().append().

L’autre raison pour laquelle il est semblable à un tableau est parce quele sélecteur que vous fournissez peut en réalité saisir de nombreux éléments différents, et la plupart des méthodes que vous pouvez appeler sur un objet jQuery affecteront tous les éléments dom sélectionnés par votre sélecteur.

J'espère que cela vous aidera, et j'espère que vous ferez un peu plus de recherches sur jQuery et son fonctionnement. C’est une bibliothèque extrêmement utile qui, semble-t-il, ne vous est pas encore complètement comprise.

Edit: Comme d’autres l’ont déjà mentionné, si vous voulez juste un élément d’un objet jQuery et utilisez jQuery comme sélecteur, vous pouvez utiliser des accesseurs de crochets. $(...)[0] ou la méthode get $(...).get(0).


0 pour la réponse № 3

De Rick Strahl la description

Les sélecteurs renvoient un objet jQuery appelé"ensemble encapsulé", 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 les fonctions jQuery à tous les éléments sélectionnés.