Cosa restituisce effettivamente jquery $?


113

Ho letto la documentazione di JQuery e sebbene molta attenzione sia dedicata a ciò che dovresti passare alla funzione, non vedo alcuna informazione su ciò che effettivamente restituisce .

In particolare, restituisce sempre un array, anche se viene trovato un solo elemento? Restituisce null quando non viene trovato nulla? Dove è documentato?

Capisco che i metodi jquery possono essere applicati al valore restituito, ma cosa succede se voglio utilizzare direttamente il valore restituito?

Risposte:


76

Dalla descrizione di Rick Strahl :

L'oggetto jQuery: Il set avvolto: i selettori restituiscono un oggetto jQuery noto come "set avvolto", che è una struttura simile a un array che contiene tutti gli elementi DOM selezionati. È possibile iterare sull'insieme avvolto come un array o accedere a singoli elementi tramite l'indicizzatore ($ (sel) [0] per esempio). Ancora più importante, puoi anche applicare le funzioni jQuery a tutti gli elementi selezionati.

Informazioni sulla restituzione di nulla:

Restituisce sempre un array? Restituisce null?

Hai sempre la stessa cosa indietro, se ha o meno dei contenuti è la domanda. In genere puoi verificarlo utilizzando .val () (ad esempio $ ('. MyElem'). Val ())


1
Fantastico, grazie ... questo è molto utile. Non sapevo che un oggetto definito dall'utente potesse allo stesso tempo essere così "simile ad un array" - credo che questo sia il genio di jquery.
arpione

Prego - ho anche modificato e aggiunto il link completo all'articolo di Rick Strahl - è una buona lettura.
Ian Robinson

14
Per la domanda che mi ha portato qui, ovvero come controllare se è stato trovato qualcosa, sono andato con $ (query) .length , che sembra fare il trucco.
arpione

3
cos'è un array come set .... è un array o un oggetto o? ... possiamo essere precisi?

26

Non restituisce un array, restituisce un oggetto jQuery. L'oggetto jQuery è ciò che contiene tutti i metodi speciali jQuery.

Non restituisce mai null o un altro tipo. Se viene trovato un elemento, l'oggetto jQuery avrà un solo figlio. Se non vengono trovati elementi, l'oggetto jQuery sarà vuoto.


6

La funzione jQuery (cioè " $") restituisce sempre un oggetto jQuery in ogni istanza.


4
@harpo: per niente; È solo che gli oggetti in questione hanno un nome sbagliato. "L'oggetto jQuery", alias $vs "un oggetto jQuery", anche noto come "set avvolto".
Sean McMillan

5

Come accennato da un altro risponditore, restituisce sempre l'oggetto jQuery.

Questo oggetto contiene sempre un array di elementi (anche se è un array vuoto o un array con un solo oggetto).

Se desideri utilizzare l'oggetto restituito "direttamente", come in, come un elemento semplice, puoi eseguire una delle seguenti operazioni:

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

3

Dalla documentazione di jQuery :

L'oggetto jQuery stesso si comporta in modo molto simile a un array; ha una proprietà length ed è possibile accedere agli elementi nell'oggetto tramite i loro indici numerici da [0] a [length-1]. Nota che un oggetto jQuery non è in realtà un oggetto Array Javascript, quindi non ha tutti i metodi di un vero oggetto Array come join ().


2

Il fatto che $ () restituisca sempre la funzione jQuery consente di concatenare le chiamate della funzione jQuery in modo giudizioso.


1
Chiedi! $()non restituisce la funzione jQuery, (che è $essa stessa) ma restituisce un set avvolto, con tutti quei metodi utili su di esso.
Sean McMillan

1

Meccanismo di selezione di Jquery

$("..") , il selettore jquery, viene utilizzato per selezionare gli elementi corrispondenti.

Valore di ritorno

Restituisce sempre un oggetto jquery simile a un array, che ha una lengthproprietà,

Richiama il metodo sull'oggetto jquery restituito

I metodi di jquery potrebbero essere richiamati sull'oggetto e applicati a quegli elementi selezionati,

Accedi all'elemento originale per indice

Gli elementi selezionati, sono memorizzati come proprietà dell'oggetto, il loro nome di proprietà sono numeri di indice che iniziano da 0,
quindi è possibile accedervi per indice, inizia da 0,
dopo aver ottenuto l'elemento originale, puoi trattarlo come se ce la facessi document.getElementXxx().

Avvolgi un elemento originale in un oggetto jquery

Dopo aver ottenuto l'elemento originale, puoi racchiuderlo in un oggetto jquery, chiamando $(originalEle),
quindi puoi chiamare i metodi jquery sull'oggetto avvolto.


0

Secondo firebug, restituisce un array di oggetti che corrispondono al tuo selettore. Ma questo array è un oggetto jQuery, che ha più metodi di un semplice Array.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.