Jquery $ gerçekte ne döndürür?


113

JQuery belgelerini okudum ve işleve neyin geçmesi gerektiğine çok dikkat edilirken , gerçekte ne döndürdüğüne dair herhangi bir bilgi göremiyorum .

Özellikle, yalnızca bir öğe bulunsa bile her zaman bir dizi mi döndürür? Hiçbir şey bulunamadığında boş mu döndürür? Bu nerede belgeleniyor?

Jquery yöntemlerinin dönüş değerine uygulanabileceğini anlıyorum, ancak ya yalnızca dönüş değerini doğrudan kullanmak istersem?

Yanıtlar:


76

Gönderen Rick Strahl'ın açıklaması :

JQuery Nesnesi: Sarmalanmış Küme: Seçiciler, tüm seçilen DOM öğelerini içeren dizi benzeri bir yapı olan "sarmalanmış küme" olarak bilinen bir jQuery nesnesi döndürür. Sarılmış kümeyi bir dizi gibi yineleyebilir veya indeksleyici (örneğin $ (sel) [0]) aracılığıyla tek tek öğelere erişebilirsiniz. Daha da önemlisi, jQuery işlevlerini seçilen tüm öğelere de uygulayabilirsiniz.

Hiçbir şeyi iade etmeme hakkında:

Her zaman bir dizi mi döndürür? Boş döndürür mü?

Her zaman aynı şeyi geri alırsınız, soru içeriğinin olup olmadığıdır. Genellikle bunu .val () kullanarak kontrol edebilirsiniz (ör. $ ('. MyElem'). Val ())


1
Harika, teşekkürler ... bu çok yardımcı oldu. Kullanıcı tanımlı bir nesnenin aynı zamanda bu kadar "dizi benzeri" olabileceğini bilmiyordum - sanırım bu jquery'nin dehası.
harpo

Rica ederim - ayrıca Rick Strahl'ın makalesinin tam bağlantısını yeni düzenledim ve ekledim - bu iyi bir okuma.
Ian Robinson

14
Beni buraya getiren soru için, yani herhangi bir şeyin bulunup bulunmadığını nasıl kontrol edersiniz , hile yapıyor gibi görünen $ (query) .length ile gittim .
harpo

3
küme gibi bir dizi nedir .... bu bir dizi mi yoksa bir nesne mi yoksa? ... kesin olabilir miyiz?

26

Bir dizi döndürmez, bir jQuery nesnesi döndürür. JQuery nesnesi, tüm özel jQuery yöntemlerini içeren nesnedir.

Hiçbir zaman null veya başka bir tür döndürmez. Bir öğe bulunursa, jQuery nesnesinin yalnızca bir çocuğu olacaktır. Hiçbir öğe bulunmazsa, jQuery nesnesi boş olacaktır.


6

JQuery işlevi (yani " $") her durumda her durumda bir jQuery nesnesi döndürür.


4
@harpo: hiç de değil; Sadece söz konusu nesnelerin isimleri kötü. "JQuery Nesnesi", aka $"bir jQuery Nesnesi", aka "sarılmış küme".
Sean McMillan

5

Başka bir yanıtlayıcının belirtildiği gibi, her zaman jQuery nesnesini döndürür.

Bu nesne her zaman bir dizi öğe içerir (boş bir dizi veya yalnızca bir nesneye sahip bir dizi olsa bile).

Döndürülen nesneyi "doğrudan" olduğu gibi düz bir öğe olarak kullanmak istiyorsanız, aşağıdakilerden birini yapabilirsiniz:

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

3

Gönderen jQuery belgelerine :

JQuery nesnesinin kendisi daha çok bir dizi gibi davranır; bir length özelliğine sahiptir ve nesnedeki öğelere [0] - [length-1] sayısal indisleri ile erişilebilir. Bir jQuery nesnesinin gerçekte bir Javascript Array nesnesi olmadığına, dolayısıyla join () gibi gerçek bir Array nesnesinin tüm yöntemlerine sahip olmadığına dikkat edin.


2

$ () 'In her zaman jQuery işlevini döndürmesi gerçeği, jQuery işlevi çağrılarını mantıklı bir şekilde zincirlemenize izin verir.


1
Sor! $()jQuery işlevini ( $kendisidir) döndürmez, ancak tüm bu yararlı yöntemlerle sarmalanmış bir küme döndürür.
Sean McMillan

1

Jquery seçici mekanizma

$("..") , jquery seçici, eşleşen öğeleri seçmek için kullanılır.

Geri dönüş değeri

Her zaman bir lengthözelliği olan dizi benzeri bir jquery nesnesi döndürür ,

Döndürülen jquery nesnesi üzerinde çağrı yöntemi

Nesne üzerinde jquery yöntemleri çağrılabilir ve bu seçilen elemanlara uygulanabilir,

Orijinal öğeye dizine göre erişin

Seçilen elemanlar, nesnenin özelliği olarak depolanır, özellik isimleri 0'dan başlayan dizin numaralarıdır,
bu nedenle indeksle erişilebilir, 0'dan başlar
, orijinal elemanı aldıktan sonra , onu geçiyormuş gibi davranabilirsiniz document.getElementXxx().

Orijinal bir öğeyi bir jquery nesnesine sarma

Orijinal öğeyi aldıktan sonra, çağırarak onu bir jquery nesnesi olarak sarmalayabilir $(originalEle),
ardından sarılmış nesne üzerinde jquery yöntemlerini çağırabilirsiniz.


0

Firebug'a göre, seçicinizle eşleşen bir dizi nesne döndürür. Ancak bu dizi bir jQuery nesnesidir ve basit bir Array'den daha fazla yöntem sunar.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.