Nói ngắn gọn
$(document.getElementById("test:abc"))
là những gì bạn nên sử dụng.
Giải thích : Ngoài việc tăng tốc độ (xem thêm xuống), việc xử lý sẽ dễ dàng hơn.
Ví dụ: Giả sử bạn có chức năng
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);
Tốc độ / thời gian
hãy xem jsbin này để kiểm tra và so sánh tốc độ của các phương pháp lựa chọn ID với dấu hai chấm
bạn cần phải mở bảng điều khiển firebird của bạn để có kết quả.
Tôi đã thử nó với firefox 10 và jquery 1.7.2
về cơ bản, tôi đã chọn 10.000 lần div với dấu hai chấm trong id - với các phương thức khác nhau để đạt được nó. Sau đó, tôi so sánh kết quả với lựa chọn ID không có dấu hai chấm trong đó, kết quả khá đáng ngạc nhiên.
thời gian bên trái trong ms phương pháp chọn phải
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
đặc biệt
71 $("#nocolon") and
299 $("#annoying\\:colon")
đến một chút bất ngờ