Beberapa Parameter untuk pemilih jQuery?

112

Saya baru saja melihat plug-in tombol jQueryUI dan memperhatikan ini

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

Saya tidak pernah melihat yang seperti ini. Apakah ini seperti beberapa pilihan dalam satu pemilih jQuery?

chobo2.dll
sumber

Jawaban:

172

Argumen kedua ( ".demo"dalam contoh Anda) adalah konteksnya , pada dasarnya pemilih Anda dibatasi untuk mencocokkan hanya turunan dari konteks yang ditentukan :

$(expr, context)

Setara dengan menggunakan findmetode:

$(context).find(expr)

Lihat dokumentasi fungsi jQuery :

Konteks Selektor

Secara default, penyeleksi melakukan penelusurannya di dalam DOM mulai dari akar dokumen. Namun, konteks alternatif dapat diberikan untuk pencarian dengan menggunakan parameter opsional kedua ke $()fungsi tersebut. Misalnya, jika dalam fungsi panggilan balik kita ingin melakukan pencarian elemen, kita dapat membatasi pencarian itu:

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

Juga perhatikan bahwa selektor yang Anda posting "button, input:submit, a", disebut Multiple Selector , dan di sana Anda dapat menentukan sejumlah pemilih untuk digabungkan menjadi satu hasil, hanya dengan memisahkannya dengan koma.

CMS
sumber
Cool tidak pernah tahu itu. Ketika saya ingin membatasi katakan seperti sektor kelas sehingga tidak akan mencari seluruh halaman, saya hanya melakukan sesuatu seperti $ ('# id .class')
chobo2
Itu benar-benar mundur dari apa yang Anda pikirkan saat melihat sumbernya. Saya berharap arg pertama menjadi kelas super diikuti oleh subkelas yang mempersempitnya. Ah baiklah.
bola lampu
3
Apakah lebih cepat untuk browser jika saya menentukan konteks?
Andres SK