Nie możemy uzyskać dostępu do elementu div o identyfikatorze „test: abc” w kodzie JS przy użyciu jQuery.
<div id="test:abc">
$('#test:abc')
Działa dobrze bez okrężnicy. Nie mamy kontroli nad generowaniem identyfikatora, ponieważ jest on generowany automatycznie w formularzach podrzędnych Trinidad, ponieważ dołącza identyfikator formularza podrzędnego :
do każdego elementu w nim zawartego.
Odpowiedzi:
Musisz uciec z dwukropka za pomocą dwóch ukośników:
źródło
W skrócie
$(document.getElementById("test:abc"))
jest tym, czego powinieneś użyć.Wyjaśnienie : Oprócz przyrostu prędkości (patrz poniżej) jest łatwiejszy w obsłudze.
Przykład: załóżmy, że masz funkcję
Prędkość / czas
spójrz na ten plik jsbin, który testuje i porównuje szybkość metod wyboru identyfikatorów z dwukropkami
aby uzyskać wyniki, musisz otworzyć konsolę firebuga.
Przetestowałem to z Firefox 10 i jQuery 1.7.2
w zasadzie zrobiłem 10 000 razy div z dwukropkiem w id - z różnymi metodami, aby to osiągnąć. Następnie porównałem wyniki do selekcji ID bez dwukropka, wyniki są dość zaskakujące.
lewy czas w ms prawa metoda selektora
szczególnie
jest trochę zaskoczeniem
źródło
$("#annyoing\\:colon")
, 29$("[id='annyoing:colon']")
, 5$(document.getElementById("annyoing:colon"))
, 8$("#nocolon")
, 31$("[id='nocolon']")
$("#annoying\\:colon")
czy$(document.getElementById("annoying:colon"))
?Oczywiście potyka się o okrężnicę, ponieważ jQuery próbuje zinterpretować to jako selektor. Spróbuj użyć selektora atrybutu id.
źródło
Po prostu użyłbym
document.getElementById
i przekazał wynik dojQuery()
funkcji.źródło
użyj dwóch odwrotnych ukośników
\\
PRÓBNY
jak napisano tutaj
Odniesienie
źródło
Nawiązując do odpowiedzi Toskana, zaktualizowałem jego kod, aby był nieco bardziej czytelny, a następnie wyprowadziłem na stronę.
Oto link jbin: http://jsbin.com/ujajuf/14/edit .
Ponadto uruchomiłem go z większą liczbą iteracji
Nawet więcej:
źródło
spróbuj użyć
$('#test\\:abc')
źródło
Ta składnia
$('[id="test:abc"]')
działała dla mnie. UżywamNetbeans 6.5.1
i generuje komponenty z rozszerzeniem,id
które zawiera: (colon)
. Próbowałem\\
& the,\3A
ale żaden z nich nie działał.źródło
Użyj
$('[id=id:with:colon]')
.źródło