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
function doStuff(id){
var jEle = $("#" + id); //is not safe, since id might be "foo:bar:baz" and thus fail.
//You would first have to look for ":" in the id string, then replace it
var jEle = $(document.getElementById(id)); //forget about the fact
//that the id string might contain ':', this always works
}
//just to give an idea that the ID might be coming from somewhere unkown
var retrievedId = $("foo").attr("data-target-id");
doStuff(retrievedId);
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
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
terutama
71 $("#nocolon") and
299 $("#annoying\\:colon")
datang sedikit sebagai kejutan