Bagaimana cara memilih elemen di jQuery dengan menggunakan variabel untuk ID?


100

Misalnya, berikut ini memilih divisi dengan id = "2":

row = $("body").find("#2");

Bagaimana saya melakukan sesuatu seperti ini:

row_id = 5;
row = $("body").find(row_id);

Sintaks di atas menghasilkan kesalahan. Saya memeriksa dokumentasi jQuery dan jawabannya di sini tanpa hasil.


6
Wow, lima jawaban yang persis sama ...
Zifre

Jawaban:


189
row = $("body").find('#' + row_id);

Lebih penting lagi, melakukan pencarian tubuh tambahan tidak berdampak pada kinerja. Cara yang tepat untuk melakukannya adalah:

row = $('#' + row_id);

46

Cara terpendek adalah:

$("#" + row_id)

Membatasi pencarian pada tubuh tidak ada manfaatnya.

Selain itu, Anda harus mempertimbangkan untuk mengganti nama ids Anda menjadi sesuatu yang lebih bermakna (dan sesuai dengan HTML sesuai jawaban Paolo), terutama jika Anda memiliki kumpulan data lain yang perlu diberi nama juga.


Saya suka yang ringkas. Saya baru saja menggunakan ini dengan tooltips qTip2, berfungsi dengan baik. Saya sedikit penasaran apa hukuman kinerja untuk menghasilkan banyak "tepat waktu" ini seperti dalam menanggapi masukan pengguna.
PJ Brunet

26

Melakukan $('body').find();tidak perlu saat mencari berdasarkan ID; tidak ada perolehan kinerja.

Harap perhatikan juga bahwa memiliki ID yang dimulai dengan angka bukanlah HTML yang valid :

Token ID dan NAMA harus dimulai dengan huruf ([A-Za-z]) dan dapat diikuti dengan sejumlah huruf, angka ([0-9]), tanda hubung ("-"), setrip bawah ("_") , titik dua (":"), dan titik (".").


6

Anda bisa melakukannya seperti ini:

row_id = 5;
row = $("body").find('#'+row_id);

1

Ada dua masalah dengan kode Anda

  1. Untuk menemukan elemen dengan ID Anda harus mengawalinya dengan "#"
  2. Anda mencoba untuk mengirimkan Angka ke fungsi find ketika String diperlukan (meneruskan "#" + 5 akan memperbaikinya karena akan mengubah 5 menjadi "5" terlebih dahulu)

0

Saya tidak tahu banyak tentang jQuery, tetapi coba ini:

row_id = "#5";
row = $("body").find(row_id);

Sunting: Tentu saja, jika variabelnya adalah angka, Anda harus menambahkan "#"di depan:

row_id = 5
row = $("body").find("#"+row_id);
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.