można spróbować
$(document.getElementById('j_idt8:beginDateTxt')).mobiscroll().date({theme: 'android-ics light', mode:'scroller', display: 'bottom'});
W ogólnym jQuery używa czegoś podobnego selektorów CSS w swoim $()
funkcji. W selektorze CSS :
oznacza pseudoklasę. Jednak w twoim przypadku :
jest tylko częścią identyfikatora.
Jeśli używasz generycznego getElementById()
, argumentem jest , a nie, rozłożony, ale widziany jako ID. Więc używając getElementById()
i zawijając wynik z $()
możesz ominąć to "nieporozumienie".
Ogólnie jednak, myślę, że lepiej byłoby zmienić schemat oznaczania przestrzeni w twoim JSF.
EDIT
W jQuery documentation on selectors stwierdza, że powinna uciec znaków specjalnych przez użycie \\
:
To use any of the meta-characters (such as !"#$%&'()*+,./:;<=>[email protected][]^`{|}~) as a literal part of a name, it must be escaped with with two backslashes: \. For example, an element with id="foo.bar"
, can use the selector $("#foo\\.bar")
.
doprowadzi to do odpowiedzi już podany przez Daniela, który moim zdaniem jest lepszy do odpowiedzi podanej powyżej. Wyjaśnienie pozostaje jednak aktualne.
$("#j_idt8\\:beginDateTxt").mobiscroll().date({theme: 'android-ics light', mode:'scroller', display: 'bottom'});
dokładnie jest! thx – user2294016
Myślałem, że używamy selektora jQuery, więc nie używamy getElementById – AaA
@BobSort Problem polegał na tym, że id zawierał ':', co powodowało, że jQuery uważał, że pseudo klasa jest używana, aw rezultacie nie. Aby ominąć, użyłem 'getElementById()', który interpretuje swój argument jako łańcuch. – Sirko