jQuery: pilih kelas elemen dan id secara bersamaan?


170

Saya punya beberapa tautan yang ingin saya pilih kelas dan id secara bersamaan.

Ini karena saya punya 2 perilaku berbeda. Ketika suatu kelas tautan mendapatkan satu nama kelas, mereka berperilaku dalam satu cara, ketika kelompok tautan yang sama mendapatkan nama kelas lain, mereka berperilaku berbeda. Nama kelas diganti dengan jquery.

Jadi saya harus dapat memilih kelas tautan DAN id secara bersamaan. Apakah ini mungkin?

Saya sudah mencoba:

 $("a .save #country")

tanpa hasil apa pun.

Jawaban:


305

Anda dapat melakukan:

$("#country.save")...

ATAU

$("a#country.save")...

ATAU

$("a.save#country")...

seperti yang kamu inginkan.

Jadi ya Anda dapat menentukan pemilih yang harus cocok dengan ID dan kelas (dan berpotensi menandai nama dan hal lain yang ingin Anda masukkan).


41
Jadi pada dasarnya seperti: $ ("# a .b") berarti elemen dengan kelas b di dalam elemen dengan id a. $ ("# ab") berarti elemen dengan kelas b dan id a. Caranya adalah ruang antara #a dan .b
Bhumi Singhal

13
Harus berhati-hati bahwa Anda menggunakan pemilih id sebelum kelas jika tidak maka tidak akan berhasil. Contoh: $ (". Save # country") ... tidak memberikan hasil.
slotomo

43

Hanya untuk menambahkan bahwa jawaban yang diberikan Alex bekerja untuk saya, dan bukan jawaban yang disorot sebagai jawaban.

Yang ini tidak berhasil untuk saya

$('#country.save') 

Tapi yang ini:

$('#country .save') 

jadi kesimpulan saya adalah menggunakan ruang. Sekarang saya tidak tahu apakah ini ke versi baru jQuery yang saya gunakan (1.5.1), tetapi tetap berharap ini membantu siapa pun dengan masalah yang sama yang saya alami.

sunting: Penghargaan penuh untuk penjelasan (dalam komentar atas jawaban Alex) diberikan kepada Felix Kling yang mengatakan:

Ruang adalah pemilih keturunan, yaitu AB berarti "Cocokkan semua elemen yang cocok dengan B yang merupakan keturunan dari elemen yang cocok dengan A". AB berarti "pilih semua elemen yang cocok dengan A dan B". Jadi itu sangat tergantung pada apa yang ingin Anda raih. #country.savedan #country .savetidak setara.


2
Apakah masalah yang Anda katakan "countery" bukan "country"?
amindfv

8

Ini akan berfungsi saat menambahkan ruang antara id dan pengidentifikasi kelas

$("#countery .save")...


1
sebenarnya ini bekerja untuk saya, karena tidak berfungsi seperti $ ('# countery.save') jadi terima kasih!
Nikola

1
Saya menemukan kadang-kadang pilih-pilih tentang ruang. seperti $ (. selector> .item # id) berfungsi, tetapi $ (. selector> .item #id) tidak.
Abe Petrillo

21
Ruang adalah pemilih keturunan , yaitu A Bberarti "Cocokkan semua elemen yang cocok dengan B yang merupakan keturunan dari elemen yang cocok dengan A". ABberarti "pilih semua elemen yang cocok dengan A dan B". Jadi itu sangat tergantung pada apa yang ingin Anda raih. #countery.savedan #countery .savetidak setara.
Felix Kling

2

Pada akhirnya aturan yang sama seperti untuk css berlaku.

Jadi saya pikir referensi ini bisa bermanfaat.


Bisakah Anda meringkas isi referensi Anda?
krlmlr

Sebenarnya, menurut api.jquery.com/category/selectors jQuery memiliki beberapa penyeleksi sendiri; juga, itu tidak benar-benar mengatakan bahwa semua penyeleksi CSS 1-3 didukung ...
SamB

@ Sam Anda benar tetapi, ia mengatakan itu meminjam dari CSS 1-3 DAN menambahkan sendiri. Saya masih berpikir tautan ke hal-hal W3C valid untuk diskusi ini.
akousmata

2

Bagaimana dengan kode ini?

$("a.save#country")

1
$("a.save, #country") 

akan memilih id "a.save" dan id "country".

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.