En bref
$(document.getElementById("test:abc"))
est ce que vous devez utiliser.
Explication : Hormis le gain de vitesse (voir plus bas), il est plus facile à manipuler.
Exemple: disons que vous avez une fonction
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);
Vitesse / synchronisation
jetez un œil à ce jsbin qui teste et compare la vitesse des méthodes de sélection des identifiants avec les deux-points
vous devez ouvrir votre console Firebug pour obtenir les résultats.
Je l'ai testé avec firefox 10 et jquery 1.7.2
en gros, j'ai fait une sélection 10'000 fois d'un div avec un deux-points dans l'id - avec les différentes méthodes pour y parvenir. Ensuite, j'ai comparé les résultats à une sélection d'identification sans deux points, les résultats sont assez surprenants.
temps gauche en ms méthode du sélecteur droit
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
surtout
71 $("#nocolon") and
299 $("#annoying\\:colon")
vient un peu comme une surprise