संक्षेप में
$(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 पर एक नज़र डालें जो कोलन के साथ ID की चयन विधियों की गति का परीक्षण और तुलना करता है
परिणाम प्राप्त करने के लिए आपको अपना फायरबग कंसोल खोलने की आवश्यकता है।
मैंने इसे फ़ायरफ़ॉक्स 10 और jquery 1.7.2 के साथ परीक्षण किया
मूल रूप से मैंने आईडी में एक बृहदान्त्र के साथ एक div का चयन 10'000 बार किया - इसे प्राप्त करने के विभिन्न तरीकों के साथ। तब मैंने परिणामों की तुलना एक आईडी चयन के साथ की जिसमें कोई बृहदान्त्र नहीं था, परिणाम काफी आश्चर्यजनक हैं।
ms दाएँ चयनकर्ता विधि में बायाँ समय
299 $("#annoying\\:colon")
302 $("[id='annoying:colon']"
20 $(document.getElementById("annoying:colon"))
71 $("#nocolon")
294 $("[id='nocolon']")
ख़ास तौर पर
71 $("#nocolon") and
299 $("#annoying\\:colon")
थोड़ा आश्चर्य के रूप में आता है