Коротко
$(document.getElementById("test:abc")) це те, що вам слід використовувати.
Пояснення : Окрім збільшення швидкості (див. Далі), з цим легше керувати.
Приклад: скажіть, що у вас є функція
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);
Швидкість / час
подивіться на це jsbin, який тестує та порівнює швидкість методів вибору ідентифікаторів з колонами
вам потрібно відкрити консоль firebug, щоб отримати результати.
Я перевірив це за допомогою firefox 10 та jquery 1.7.2
в основному я зробив кілька тисяч разів діва з двокрапкою в ід - з різними методами, щоб досягти цього. Тоді я порівнював результати з виділенням ідентифікатора, в ньому немає двокрапки, результати є досить дивними.
лівий час у мс-методі правого вибору
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
особливо
71 $("#nocolon") and
299 $("#annoying\\:colon")
приходить трохи як сюрприз