首页 > 解决方案 > Jquery Datepicker、字符串连接和#selector

问题描述

我正在制作一些链接到日期选择器的文本框,所以我制作了一个品种的功能:

function createDatePickerTextbox(id) {
    var dt = document.createElement("input");
    dt.type = "text";
    dt.id = id;
    var selector = "#" + id;
    $(function() {
        $(selector).datepicker({
            // Stuff
        });
    });
}

我这样称呼它:

createDatePickerTextbox("datepicker");

它不能按原样工作,但是如果我将线路更改var selector = "#" + id;var selector = "#datepicker";它确实有效。当我输入断点并查看字符串时,它们看起来完全一样,但只有预先构造的字符串按预期工作。

为什么通过连接构造的字符串不起作用?

编辑:我尝试将selector作为参数添加到函数并使用 调用它"#datepicker",但这甚至不起作用。这里发生了什么?

标签: javascriptjqueryjquery-selectorsstring-concatenation

解决方案


function createDatePickerTextbox(id) {
  var dt = document.createElement("input");
  dt.type = "text";
  dt.id = id;
  var selector = "#" + id;
  $(function() {
    $(selector).datepicker({
        // Stuff
    });
  });
}

createDatePickerTextbox('test');
createDatePickerTextbox('test1');
 
<!DOCTYPE html>
<html>
<head>
   <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
   <script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
</head>
<body>
  <input type="text" id="test" value="" name="test" />
  <input type="text" id="test1" value="" name="test1" />
</body>
</html>

我没有收到任何错误。


推荐阅读