Ответ 1
Вы можете попробовать
$(document.getElementById('j_idt8:beginDateTxt')).mobiscroll().date({theme: 'android-ics light', mode:'scroller', display: 'bottom'});
В общем случае jQuery использует что-то вроде селекторов CSS в своей функции $()
. В селекторе CSS :
обозначает псевдокласс. Однако в вашем случае :
является лишь частью идентификатора.
Если вы используете общий getElementById()
, аргумент не разлагается, а рассматривается как идентификатор. Таким образом, используя getElementById()
и завершая результат с помощью $()
, вы можете обойти это "недоразумение".
В целом, однако, я думаю, что было бы лучше изменить схему имен в вашем JSF.
ИЗМЕНИТЬ
Документация jQuery для селекторов утверждает, что вам следует избегать специальных символов с помощью \\
:
Чтобы использовать любой из метасимволов (таких как!) # $% & '() * +,./:; <= > ? @[] ^ `{|} ~) как буквальная часть имени, он должен быть экранирован с помощью двух обратных косых черт: \. Например, элемент с
id="foo.bar"
может использовать селектор$("#foo\\.bar")
.
Это приведет к тому, что Даниил дал ответ, который, на мой взгляд, превосходит ответ, приведенный выше. Объяснение, однако, остается в силе.
$("#j_idt8\\:beginDateTxt").mobiscroll().date({theme: 'android-ics light', mode:'scroller', display: 'bottom'});