我正在使用jQuery 1.4.4而且我一直试图通过id动态添加一个datepicker。这是代码:
$(function () {
$('#ListTableBody').find('input[id^="PickDate."]').each(function () {
alert(this.id);
$(this.id).datepicker();
});
});
我正在使用一个动态生成id的表。上面的代码找到了每个id,我使用警报验证了它。当我循环时,this.id显示我有正确的id和输入,但是datepicker由于某种原因不起作用?另外,我不会抛出任何错误。
我在这里做错了什么想法?
答案 0 :(得分:3)
试试这个:
$('#ListTableBody').find('input[id^="PickDate."]').each(function() {
$(this).datepicker();
});
无需获取id
属性 - 您可以立即使this
成为jQuery对象
答案 1 :(得分:1)
如果你想使用它,你需要做这样的事情:
$("#"+this.id).datepicker();
但这样做更容易:
$(this).datepicker();
答案 2 :(得分:1)
我会改用一个班级。 ID只能在每个文档中使用一次,而您将each()
应用于ID选择器的事实表明您的页面上可能有多个实例。
相反,请选择一个描述性的类名,例如.datepicker
。优点是你可以在你的页面上有多个,也可以用这样的表达式初始化日期选择器:
$(document).ready(function() {
$('input.datepicker').datepicker();
});
如果您没有做任何其他事情,则无需each()
循环。如果您想将datepickers限制在特定区域内的输入,例如#ListTableBody
(我再次建议使用类名,以便您可以在页面上有多个,如果您愿意),那么只需更改选择器:
$(document).ready(function() {
$('#ListTableBody').find('input.datepicker').datepicker();
});
答案 3 :(得分:0)
可以为每个需要用作日期选择器的控件设置相同的类。
<script>
$(function() {
$('.class').datepicker();
});
</script>