JQuery seçici için Çoklu Parametreler?


112

Sadece jQueryUI düğme eklentisine bakıyordum ve bunu fark ettim

$("button, input:submit, a", ".demo").button();

Hiç böyle bir şey görmedim. Bu, tek bir jQuery seçicisindeki çoklu seçim gibi mi?

Yanıtlar:


172

İkinci argüman ( ".demo"örneğinizde) bağlamdır , temelde seçiciniz yalnızca belirli bir bağlamın soyundan gelenlerle eşleşecek şekilde sınırlandırılmıştır :

$(expr, context)

Sadece findyöntemi kullanmakla eşdeğerdir :

$(context).find(expr)

JQuery işlevinin belgelerine bir göz atın :

Seçici Bağlam

Varsayılan olarak, seçiciler aramalarını DOM içinde belge kökünden başlayarak gerçekleştirirler. Ancak, $()işleve isteğe bağlı ikinci parametre kullanılarak arama için alternatif bir bağlam verilebilir . Örneğin, bir geri arama işlevi içinde bir öğe araması yapmak istersek, bu aramayı kısıtlayabiliriz:

$('div.foo').click(function() {
  $('span', this).addClass('bar');
  // it will find span elements that are
  // descendants of the clicked element (this)
});

Ayrıca gönderdiğiniz seçicinin Çoklu Seçici"button, input:submit, a" olarak adlandırıldığına dikkat edin ve burada yalnızca virgülle ayırarak tek bir sonuçta birleştirmek için istediğiniz sayıda seçiciyi belirtebilirsiniz.


Cool bunu asla bilmiyordu. Söylemeyi bir sınıf sektörü gibi sınırlamak istediğimde tüm sayfayı aramasın diye sadece $ ['# id .class') gibi bir şey yaptım
chobo2

Bu gerçekten kaynağa bakarken düşündüğünüz şeyin tersidir. İlk argümanın süper sınıf olmasını ve ardından onu daraltan alt sınıfların olmasını beklerdim. Ah peki.
light24bulbs

3
Bir bağlam tanımlarsam tarayıcı için daha hızlı olur mu?
Andres SK
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.