我试图在3个输入字段中添加3个日期选择器,所以我回复了以下代码:
这个有效:
jQuery(function(){
jQuery("#newnessdate").datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
});
jQuery(function(){
jQuery("#availabilitydate").datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
});
jQuery(function(){
jQuery("#expirydate").datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
});
这不是:
var dateIds = [
"#newnessdate",
"#availabilitydate",
"#expirydate"
];
for (var i = 0; i < dateIds.length; i++)
{
jQuery(function(){
jQuery(dateIds[i]).datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
});
}
我已经对它进行了很多测试,并且不知道为什么它不起作用但是在行中
jQuery(dateIds[i]).datepicker({
看来,jQuery函数不接受数组中的字符串作为字符串。你能救我吗?
答案 0 :(得分:3)
$("#newnessdate, #availabilitydate, #expirydate").datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
});
}
答案 1 :(得分:2)
你遇到的问题是,在调用回调时循环结束,i
的值是循环结束的值。
简单修复(附加的好处是不会将调用乘以$.ready
):
jQuery(function(){
for (var i = 0; i < dateIds.length; i++)
{
jQuery(dateIds[i]).datepicker({
dateFormat: \'yy-mm-dd\',
monthNames: [\'Januar\',\'Februar\',\'März\',\'April\',\'Mai\',\'Juni\',\'Juli\',\'August\',\'September\',\'Oktober\',\'November\',\'Dezember\'],
dayNames: [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\', \'Donnerstag\', \'Freitag\',\'Samstag\'],
dayNamesMin: [\'So\', \'Mo\', \'Di\', \'Mi\', \'Do\', \'Fr\', \'Sa\']
});
}
}
);
答案 2 :(得分:1)
var dateIds = [
"#newnessdate",
"#availabilitydate",
"#expirydate"
];
var options = {
dateFormat: 'yy-mm-dd',
monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag','Samstag'],
dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
};
$.each(dateIds, function(k, v) {
$(v).datepicker(options);
});
答案 3 :(得分:1)
根据文档“jQuery(callback)”类似于“jQuery(document).ready(callback)”。你失去了上下文(循环迭代器“我”),所以最好这样做:
jQuery(function(){
var dateIds = [
"#newnessdate",
"#availabilitydate",
"#expirydate"
];
for (var i = 0; i < dateIds.length; i++)
{
jQuery(dateIds[i]).datepicker({
.......
});
}
});
它保存循环上下文并阻止创建多个事件(文档就绪)侦听器。如果您需要从全局上下文访问数组数据,只需将其放在回调函数之外,但使用全局上下文存储数据是不好的做法。