Apa yang sebenarnya dikembalikan jquery $?

113

Saya telah membaca dokumentasi JQuery, dan sementara banyak perhatian dikhususkan untuk apa yang harus Anda sampaikan , saya tidak melihat informasi apa pun tentang apa yang sebenarnya dikembalikan .

Secara khusus, apakah itu selalu mengembalikan array, bahkan jika hanya satu elemen yang ditemukan? Apakah itu mengembalikan nol ketika tidak ada yang ditemukan? Dimana ini didokumentasikan?

Saya memahami bahwa metode jquery dapat diterapkan ke nilai pengembalian, tetapi bagaimana jika saya hanya ingin menggunakan nilai pengembalian secara langsung?

harpo
sumber

Jawaban:

76

Dari deskripsi Rick Strahl :

Objek jQuery: The Wrapped Set: Selectors mengembalikan objek jQuery yang dikenal sebagai "set terbungkus", yang merupakan struktur mirip array yang berisi semua elemen DOM yang dipilih. Anda dapat melakukan iterasi pada set yang dibungkus seperti array atau mengakses elemen individu melalui pengindeks ($ (sel) [0] misalnya). Lebih penting lagi, Anda juga dapat menerapkan fungsi jQuery pada semua elemen yang dipilih.

Tentang tidak mengembalikan apa-apa:

Apakah itu selalu mengembalikan array? Apakah itu mengembalikan nol?

Anda selalu mendapatkan hal yang sama kembali, apakah isinya atau tidak. Biasanya Anda dapat memeriksa ini dengan menggunakan .val () (misalnya $ ('. MyElem'). Val ())

Ian Robinson
sumber
1
Hebat, terima kasih ... ini sangat membantu. Saya tidak tahu bahwa objek yang ditentukan pengguna bisa pada saat yang sama menjadi begitu "mirip-larik" - Saya rasa itulah jenius jquery.
harpo
Sama-sama - Saya juga baru saja mengedit dan menambahkan tautan lengkap ke artikel Rick Strahl - bacaan yang bagus.
Ian Robinson
14
Untuk pertanyaan yang membawa saya ke sini, yaitu, bagaimana Anda memeriksa apakah ada sesuatu yang ditemukan, saya menggunakan $ (query) .length , yang sepertinya berhasil.
harpo
3
apa itu array seperti set .... apakah itu array atau objek atau? ... bisakah kita tepat?
26

Itu tidak mengembalikan array, itu mengembalikan objek jQuery. Objek jQuery adalah yang berisi semua metode jQuery khusus.

Itu tidak pernah mengembalikan nol, atau tipe lain. Jika satu elemen ditemukan, objek jQuery hanya akan memiliki satu anak. Jika tidak ada elemen yang ditemukan, objek jQuery akan kosong.

John Millikin
sumber
6

Fungsi jQuery (yaitu " $") selalu mengembalikan objek jQuery dalam setiap contoh.

Andrew Hare
sumber
4
@harpo: tidak sama sekali; Hanya saja objek yang dimaksud diberi nama yang buruk. "Objek jQuery", alias $vs "Objek jQuery", alias "set terbungkus".
Sean McMillan
5

Seperti yang disebutkan oleh penjawab lain, itu selalu mengembalikan objek jQuery.

Objek ini selalu berisi larik elemen (meskipun itu larik kosong, atau larik dengan hanya satu objek).

Jika Anda ingin menggunakan objek yang dikembalikan "secara langsung", seperti dalam, sebagai elemen biasa, Anda dapat melakukan salah satu hal berikut:

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

Dari dokumentasi jQuery :

Objek jQuery itu sendiri berperilaku seperti sebuah array; itu memiliki properti panjang dan elemen dalam objek dapat diakses dengan indeks numerik [0] hingga [panjang-1]. Perhatikan bahwa objek jQuery sebenarnya bukan objek Array Javascript, jadi tidak memiliki semua metode objek Array yang sebenarnya seperti join ().

d512
sumber
2

Fakta bahwa $ () selalu mengembalikan fungsi jQuery memungkinkan Anda merangkai panggilan fungsi jQuery dengan bijaksana.

Stefan Kendall
sumber
1
meminta! $()tidak mengembalikan fungsi jQuery, (yang dengan $sendirinya,) tetapi mengembalikan satu set terbungkus, dengan semua metode berguna di atasnya.
Sean McMillan
1

Mekanisme pemilih jquery

$("..") , pemilih jquery, digunakan untuk memilih elemen yang cocok.

Nilai kembali

Itu selalu mengembalikan objek jquery seperti array, yang memiliki lengthproperti,

Panggil metode pada objek jquery yang dikembalikan

Metode jquery bisa dipanggil pada objek, dan diterapkan ke elemen yang dipilih,

Akses elemen asli dengan indeks

Elemen yang dipilih, disimpan sebagai properti objek, nama propertinya adalah nomor indeks mulai dari 0,
sehingga dapat diakses oleh indeks, mulai dari 0,
setelah mendapatkan elemen aslinya, Anda dapat memperlakukannya seolah-olah bisa dengandocument.getElementXxx() .

Bungkus elemen asli ke objek jquery

Setelah mendapatkan elemen asli, Anda dapat membungkusnya menjadi objek jquery, dengan memanggilnya $(originalEle),
Anda dapat memanggil metode jquery pada objek yang dibungkus.

Eric Wang
sumber
0

Menurut firebug, ini mengembalikan larik objek yang cocok dengan pemilih Anda. Tapi array ini adalah objek jQuery, yang lebih banyak metode daripada Array sederhana.

eKek0
sumber
0

Dokumentasi mereka mencantumkan beberapa panggilan inti yang dapat Anda gunakan dengan "$" dan apa yang mereka kembalikan

jrsconfitto
sumber