我想在“ jQuery日期”选择器中突出显示“几天”,所以我尝试了一些脚本,结果在Codepen.io上。但是我找不到错误,为什么日期不突出显示。
https://codepen.io/flipitart/pen/vawENB
NSRunningApplication *thisApp = [NSRunningApplication runningApplicationWithProcessIdentifier:getpid()];
NSLog(@"bundle URL: %@", [thisApp bundleURL]);
答案 0 :(得分:1)
此CodePen中犯了一些错误。
看起来是从不同地方粘贴的代码,但不了解一些基本知识。
第一个是在 Ready包装器的 AND 中包含一些代码,以便在同一元素上实例化日期选择器。由于DatePicker已被外部代码实例化,因此根本不应用内部代码。您必须将其他datepicker参数放在同一位置,该位置在作为参数传递的对象之间:$('#datepicker').datepicker({ -- HERE -- });
second 是一个对象的怪异用法,其中键与值相同...只是为了稍后检查它是否存在。为什么不存储简单的日期数组?
最后一个是关于如何比较datepicker使用的日期和数组中的日期。
这是一个有趣的问题。
beforeShowDay
选项是一个函数,该函数循环显示所有要渲染的日期。因此,在当月的“抽奖”中,它将在mont的所有28〜31天之间进行循环操作,并且在前后两天内进行。
在该循环中,您要检查日期是否在要突出显示的日期数组中。 .inArray()
方法是确定这一点的不错选择。事情是将苹果与苹果进行比较...日期的格式必须与eventDates
数组中的格式相同。
var dateToCompare = $.datepicker.formatDate("dd/mm/yy", date);
此行将格式化从日期选择器循环到日期对象到dd/mm/yy
字符串的每个日期。
然后检查该日期是否在您的eventDates`数组中:
if( $.inArray(dateToCompare,eventDates) >-1 ) {
如果找到日期,它将返回true
。现在,请记住我们处于循环中。我们必须return an a array of 3 values to datepicker,即:
您尝试过此操作:return [true, "event", highlight];
。可以使用前两个值...但是highlight
是一个日期对象,在这里应该是一个字符串。
这是一个有效的代码:
$(document).ready(function() {
var eventDates = [
"12/08/2018",
"12/06/2014",
"2/20/2014",
"12/25/2014"
]
console.log(eventDates);
// Datepicker instantiation
$('#datepicker').datepicker({
beforeShowDay: function( date ) {
var dateToCompare = $.datepicker.formatDate("dd/mm/yy", date);
//console.log(dateToCompare);
if( $.inArray(dateToCompare,eventDates) >-1 ) {
console.log("A date from the array was FOUND.")
return [true, "event",'This date is in the array!'];
} else {
return [true, '', ''];
}
},
firstDay: 1,
prevText: '<i class="fa fa-fw fa-angle-left"></i>',
nextText: '<i class="fa fa-fw fa-angle-right"></i>',
onSelect: function() {
var dateText = $.datepicker.formatDate("MM dd, yy", $(this).datepicker("getDate"));
$('p.bgText').text(dateText);
}
}); // End Datepicker instantiation
// On load "layout" formattings
//
//getting today's date
var currentDate = $.datepicker.formatDate('MM dd, yy', new Date());
$('#monthAndDate').text(currentDate);
//setting bgText to current Date
$('p.bgText').text("Select a date");
var currentWeekday = $.datepicker.formatDate('DD', new Date());
$('#dayOfWeek').text(currentWeekday);
}); //End ready