Kami tidak dapat mengakses elemen div dengan ID "test: abc" dalam kode JS menggunakan jQuery.
<div id="test:abc">
$('#test:abc')
Ini bekerja dengan baik tanpa titik dua. Kami tidak memiliki kontrol pada pembuatan ID karena dibuat secara otomatis di sub-form Trinidad karena ia melampirkan sub-form ID dengan :
setiap elemen di dalamnya.
Jawaban:
Anda perlu keluar dari usus besar menggunakan dua garis miring:
sumber
Pendeknya
$(document.getElementById("test:abc"))
adalah apa yang harus Anda gunakan.Penjelasan : Selain dari kenaikan kecepatan (lihat lebih jauh ke bawah), lebih mudah untuk ditangani.
Contoh: Katakan Anda memiliki fungsi
Kecepatan / waktu
lihat jsbin ini yang menguji dan membandingkan kecepatan metode pemilihan ID dengan titik dua
Anda perlu membuka konsol pembakar Anda untuk mendapatkan hasilnya.
Saya mengujinya dengan firefox 10 dan jquery 1.7.2
pada dasarnya saya melakukan pilih 10'000 kali div dengan titik dua di id - dengan metode yang berbeda untuk mencapainya. Kemudian saya membandingkan hasil dengan pemilihan ID tanpa titik dua di dalamnya, hasilnya cukup mengejutkan.
Waktu tersisa dalam metode pemilih kanan ms
terutama
datang sedikit sebagai kejutan
sumber
$("#annyoing\\:colon")
, 29$("[id='annyoing:colon']")
, 5$(document.getElementById("annyoing:colon"))
, 8$("#nocolon")
, 31$("[id='nocolon']")
$("#annoying\\:colon")
atau$(document.getElementById("annoying:colon"))
?Jelas tersandung pada titik dua, karena jQuery mencoba menafsirkannya sebagai pemilih. Coba gunakan pemilih atribut id.
sumber
Saya hanya akan menggunakan
document.getElementById
, dan meneruskan hasilnya kejQuery()
fungsi.sumber
gunakan dua backslash
\\
DEMO
seperti yang tertulis di sini
Referensi
sumber
Mengacu pada jawaban Toskan, saya memperbarui kodenya untuk membuatnya sedikit lebih mudah dibaca dan kemudian output ke halaman.
Inilah tautan jbin: http://jsbin.com/ujajuf/14/edit .
Juga, saya menjalankannya dengan lebih banyak iterasi
Bahkan Lebih:
sumber
coba gunakan
$('#test\\:abc')
sumber
Sintaks ini
$('[id="test:abc"]')
bekerja untuk saya. Saya menggunakanNetbeans 6.5.1
& menghasilkan komponen denganid
yang berisi a: (colon)
. Saya mencoba\\
& amp;\3A
tetapi tidak satupun dari mereka bekerja.sumber
Gunakan
$('[id=id:with:colon]')
.sumber