Zusamenfassend
$(document.getElementById("test:abc")) ist das, was Sie verwenden sollten.
Erläuterung : Abgesehen von der Geschwindigkeitssteigerung (siehe weiter unten) ist die Handhabung einfacher.
Beispiel: Angenommen, Sie haben eine Funktion
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);
Geschwindigkeit / Timing
Schauen Sie sich diesen jsbin an, der die Geschwindigkeit der Auswahlmethoden von IDs mit Doppelpunkten testet und vergleicht
Sie müssen Ihre Firebug-Konsole öffnen, um die Ergebnisse zu erhalten.
Ich habe es mit Firefox 10 und jquery 1.7.2 getestet
Im Grunde habe ich 10'000 Mal eine Div mit einem Doppelpunkt in der ID ausgewählt - mit den verschiedenen Methoden, um dies zu erreichen. Dann habe ich die Ergebnisse mit einer ID-Auswahl ohne Doppelpunkt verglichen. Die Ergebnisse sind ziemlich überraschend.
linke Zeit in ms rechte Auswahlmethode
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
insbesondere
71 $("#nocolon") and
299 $("#annoying\\:colon")
kommt ein bisschen überraschend