<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>123456</title> </head> <body> <script type="text/javascript"> var $ = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } return destination; } var Calendar = Class.create(); Calendar.prototype = { initialize: function(container, options) { this.Container = $(container);//容器(table结构) this.Days = [];//日期对象列表 this.SetOptions(options); this.Year = this.options.Year || new Date().getFullYear(); this.Month = this.options.Month || new Date().getMonth() + 1; this.SelectDay = this.options.SelectDay ? new Date(this.options.SelectDay) : null; this.onSelectDay = this.options.onSelectDay; this.onToday = this.options.onToday; this.onFinish = this.options.onFinish; this.Draw(); }, //设置默认属性 SetOptions: function(options) { this.options = {//默认值 Year: 0,//显示年 Month: 0,//显示月 SelectDay: null,//选择日期 onSelectDay: function(){},//在选择日期触发 onToday: function(){},//在当天日期触发 onFinish: function(){}//日历画完后触发 }; Extend(this.options, options || {}); }, //当前月 NowMonth: function() { this.PreDraw(new Date()); }, //上一月 PreMonth: function() { this.PreDraw(new Date(this.Year, this.Month - 2, 1)); }, //下一月 NextMonth: function() { this.PreDraw(new Date(this.Year, this.Month, 1)); }, //上一年 PreYear: function() { this.PreDraw(new Date(this.Year - 1, this.Month - 1, 1)); }, //下一年 NextYear: function() { this.PreDraw(new Date(this.Year + 1, this.Month - 1, 1)); }, //根据日期画日历 PreDraw: function(date) { //再设置属性 this.Year = date.getFullYear(); this.Month = date.getMonth() + 1; //重新画日历 this.Draw(); }, //画日历 Draw: function() { //用来保存日期列表 var arr = []; //用当月第一天在一周中的日期值作为当月离第一天的天数 for(var i = 1, firstDay = new Date(this.Year, this.Month - 1, 1).getDay(); i <= firstDay; i++){ arr.push(0); } //用当月最后一天在一个月中的日期值作为当月的天数 for(var i = 1, monthDay = new Date(this.Year, this.Month, 0).getDate(); i <= monthDay; i++){ arr.push(i); } //清空原来的日期对象列表 this.Days = []; //插入日期 var frag = document.createDocumentFragment(); while(arr.length){ //每个星期插入一个tr var row = document.createElement("tr"); //每个星期有7天 for(var i = 1; i <= 7; i++){ var cell = document.createElement("td"); cell.innerHTML = " "; if(arr.length){ var d = arr.shift(); if(d){ cell.innerHTML = d; this.Days[d] = cell; var on = new Date(this.Year, this.Month - 1, d); //判断是否今日 this.IsSame(on, new Date()) && this.onToday(cell); //判断是否选择日期 this.SelectDay && this.IsSame(on, this.SelectDay) && this.onSelectDay(cell); } } row.appendChild(cell); } frag.appendChild(row); } //先清空内容再插入(ie的table不能用innerHTML) while(this.Container.hasChildNodes()){ this.Container.removeChild(this.Container.firstChild); } this.Container.appendChild(frag); //附加程序 this.onFinish(); }, //判断是否同一日 IsSame: function(d1, d2) { return (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate()); } } </script> <style type="text/css"> .Calendar { font-family:Verdana; font-size:14px; text-align:center; width:950px; margin:10px auto 0px auto; line-height:50px; } .Calendar a{ color:#1e5494; } .Calendar table thead{color:#FFFFFF;} .Calendar table td { font-size: 14px; padding:1px; } #idCalendarPre{ cursor:pointer; float:left; padding-right:5px; } #idCalendarNext{ cursor:pointer; float:right; padding-right:5px; } #idCalendar td:hover{background-color:#D3EDFC;} #idCalendar td.onToday { font-weight:bold; color:#C60; } #idCalendar td.onSelect { font-weight:bold; } </style> <div class="Calendar"> <div style="border-top:1px solid #DDDDDD;border-left:1px solid #DDDDDD;border-right:1px solid #DDDDDD;"> <div id="idCalendarPre"> <<上一月</div> <div id="idCalendarNext">下一月>> </div> <strong><span id="idCalendarYear"></span>年 <span id="idCalendarMonth"></span>月</strong> </div> <table border="1" cellspacing="0" bordercolor="#DDDDDD" style="border-collapse:collapse;"> <thead> <tr> <td width="135" bgcolor="#2F96CF">日</td> <td width="135" bgcolor="#2F96CF">一</td> <td width="135" bgcolor="#2F96CF">二</td> <td width="135" bgcolor="#2F96CF">三</td> <td width="135" bgcolor="#2F96CF">四</td> <td width="135" bgcolor="#2F96CF">五</td> <td width="135" bgcolor="#2F96CF">六</td> </tr> </thead> <tbody id="idCalendar"> </tbody> </table> </div> <div style="display:none;"> <input id="idCalendarPreYear" type="button" value="上一年" /> <input id="idCalendarNow" type="button" value="当前月" /> <input id="idCalendarNextYear" type="button" value="下一年" /> </div> <script language="JavaScript"> var cale = new Calendar("idCalendar", { onFinish: function(){ $("idCalendarYear").innerHTML = this.Year; $("idCalendarMonth").innerHTML = this.Month; var flag = ["2013-06-18","2013-06-19","2013-06-20","2013-06-21","2013-06-22","2013-06-23","2013-06-24","2013-06-25","2013-06-26","2013-06-27","2013-06-28","2013-06-29","2013-06-30","2013-07-08","2013-07-09","2013-07-10","2013-07-11","2013-07-12","2013-07-13","2013-07-14","2013-07-15","2013-07-16","2013-07-17","2013-07-18","2013-07-19","2013-07-20"]; var flagprice = ["1988","1988","1988","1988","1988","1988","1988","1988","1988","1988","1988","1988","1988","100","100","100","100","100","100","100","100","100","100","100","100","100"]; for(var i = 0, len = flag.length; i < len; i++){ var markDate = flag[i].split('-'); var markPrice = flagprice[i] if(this.Year == markDate[0] && this.Month == markDate[1]){ this.Days[markDate[2]].innerHTML ="<span style='line-height:25px;'>" + markDate[2] + "<br /><span style='color:#FF8500;'>"+markPrice+"元</span></span>"; } } } }); $("idCalendarPre").onclick = function(){ cale.PreMonth(); } $("idCalendarNext").onclick = function(){ cale.NextMonth(); } $("idCalendarPreYear").onclick = function(){ cale.PreYear(); } $("idCalendarNextYear").onclick = function(){ cale.NextYear(); } $("idCalendarNow").onclick = function(){ cale.NowMonth(); } </script> </body> </html>
帮忙看一下这个代码,六月和七月都设置了相应的价格,但月份的价格显示正常,但7月份都没有显示价格,帮忙看看是什么问题,谢谢大家!