jQuery:将连接的id传递给选择器weired情境

时间:2013-09-25 15:36:42

标签: javascript jquery

我正在使用jQuery DatePicker来选择带有'#'的元素,当我在选择器中放入“direct”字符串时一切正常,但是一旦我开始连接,结果就非常可疑了。 也许这个控制台屏幕截图解释了我正在努力的方面 enter image description here

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"
    });
}

1 个答案:

答案 0 :(得分:1)

你的替换是添加了太多的反斜杠:

http://jsfiddle.net/BaypN/

var id = replaceAll(TYPEDIALOG, ":", "\\:") + "datePiece_picker";

作为旁注,这可能是避免元素ID中:的一个很好的论据。此外,datePiece_picker可以是一个类,而不是id的一部分。