在我的情况下:
我得到了想要从 ajax 调用启用的日子。当我更改月份时,我读取了 ajax 调用的 xml 文件并获取了该月的天数。如何计算出来?
非常感谢!!
保存日期的数组变量:
var $daysWithRecords = new Array()
加载xml文件的函数:
function getDays(year,month){
$.ajax({
type: "GET",
url: "users.xml",
dataType: "xml",
success:function(msg)
{
initDaysArray( $(msg) , year , month );
}
});
}
初始化日期数组的函数:
function initDaysArray( $xml , year , month )
{
//alert(year+'-'+month);
var dateToFind = year+'-'+month;
var $myElement = $xml.find( 'user[id="126"]' );
dates = '';
$myElement.find('whDateList[month="'+dateToFind+'"]').find('date').each(function(){
$daysWithRecords.push(dateToFind+$(this).text());
dates += $(this).text() + ' ';
});
console.log(dates);
console.log($daysWithRecords.length)
}
函数使日期在数组变量中可用:
function checkAvailability(avalableDays){
var $return=false;
var $returnclass ="unavailable";
$checkdate = $.datepicker.formatDate('yy-mm-dd', avalableDays);
for(var i = 0; i < $daysWithRecords.length; i++){
if($daysWithRecords[i] == $checkdate){
$return = true;
$returnclass= "available";
}
}
return [$return,$returnclass];
}
用于加载和显示日期的日期选择器部分代码[注意:我使用的是日期选择器的内联模式]
$('#div').datepicker({ dateFormat: 'yy-mm-dd',defaultDate: '2010-09-01' ,
onChangeMonthYear: function(year, month, inst) {
console.log(year);
console.log(month);
getDays(year,month);
} ,
beforeShowDay: checkAvailability
});
最后我的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<users>
<user id="126">
<name>john</name>
<watchHistory>
<whMonthRecords month="2010-10">
<whDateList month="2010-10">
<date>01</date>
<date>05</date>
<date>21</date>
</whDateList>
</whMonthRecords>
<whMonthRecords month="2010-11">
<whDateList month="2010-11">
<date>01</date>
<date>05</date>
<date>06</date>
<date>07</date>
<date>08</date>
<date>09</date>
<date>12</date>
<date>13</date>
<date>14</date>
<date>16</date>
<date>18</date>
<date>19</date>
<date>21</date>
<date>22</date>
<date>23</date>
<date>24</date>
<date>25</date>
<date>26</date>
<date>29</date>
</whDateList>
</whMonthRecords>
</watchHistory>
</user>
</users>
非常感谢!!