0

我正在使用 jQuery 1.4.4,但我一直在尝试通过 id 动态添加日期选择器。这是代码:

$(function () {
    $('#ListTableBody').find('input[id^="PickDate."]').each(function () {
        alert(this.id);
        $(this.id).datepicker();
    });
});

我正在使用一个动态生成 id 的表。上面的代码找到了每个 id,我使用警报对其进行了验证。当我遍历时,this.id 显示我有正确的 id 和输入,但 datepicker 出于某种原因不能工作?另外,我不会抛出任何错误。

有什么想法我在这里做错了吗?

4

4 回答 4

3

尝试这个 :

$('#ListTableBody').find('input[id^="PickDate."]').each(function() {                 
    $(this).datepicker();
});

无需获取id属性 - 您可以this立即创建一个 jQuery 对象

于 2012-04-26T13:59:46.747 回答
1

我会改用一个类。ID 应该只在每个文档中使用一次,而您应用each()到 ID 选择器的事实表明您的页面上可能有多个实例。

相反,请选择描述性的类名,例如.datepicker. 优点是您可以在页面上拥有多个,并且还可以使用如下表达式在它们上初始化日期选择器:

$(document).ready(function() {
    $('input.datepicker').datepicker();
});

each()如果您不做任何其他事情,则不需要循环。如果您想将日期选择器限制为特定区域内的输入,例如#ListTableBody(我再次建议使用类名,以便您可以在页面上拥有多个),那么只需更改选择器:

$(document).ready(function() {
    $('#ListTableBody').find('input.datepicker').datepicker();
});
于 2012-04-26T14:08:57.723 回答
1

如果你想使用它的 ID,你需要做这样的事情:

$("#"+this.id).datepicker();

但这样做要容易得多:

$(this).datepicker();
于 2012-04-26T13:58:05.560 回答
0

可以为您需要用作日期选择器的每个控件放置相同的类。

    <script>
       $(function() {   
            $('.class').datepicker();
      });

    </script>
于 2012-04-26T13:59:51.177 回答