我正在使用jQuery DatePicker来选择带有'#'的元素,当我在选择器中放入“direct”字符串时一切正常,但是一旦我开始连接,结果就非常可疑了。 也许这个控制台屏幕截图解释了我正在努力的方面
HTML:
<input id="wizard:wizard-body:datePiece_picker" name="wizard:wizard-body:datePiece_picker" type="text" value="">
Javascript:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, "g"), replace);
}
var TYPEDIALOG = "wizard:wizard-body:";
var id = replaceAll(TYPEDIALOG, ":", "\\\\:")+ "datePiece_picker";
if ($("#" + id).length != 0) {
$("#" + id).datepicker({
dateFormat : "dd/mm/yy"
});
}
答案 0 :(得分:1)
你的替换是添加了太多的反斜杠:
var id = replaceAll(TYPEDIALOG, ":", "\\:") + "datePiece_picker";
作为旁注,这可能是避免元素ID中:
的一个很好的论据。此外,datePiece_picker
可以是一个类,而不是id的一部分。