首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请指点一下一个js有关问题

2012-06-21 
请指点一下一个js问题我现在想一个问题 我当前选中的日期如果大于今天的日期 我就不设置a链接如果小于当前

请指点一下一个js问题
我现在想一个问题 我当前选中的日期如果大于今天的日期 我就不设置a链接 如果小于当前的日期就有a链接,如何实现啊?

JScript code
var $id = function (id) {        return "string" == typeof id ? document.getElementById(id) : id;    };    var Class = {        create: function() {            return function() {                this.initialize.apply(this, arguments);            }        }    }    Object.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 = $id(container);//table结构容器            this.Days = [];//日期列表            this.SetOptions(options);            this.Year = this.options.Year;            this.Month = this.options.Month;            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: new Date().getFullYear(),                Month: new Date().getMonth() + 1,                SelectDay: null,//选择日期                onSelectDay: function(){},                onToday: function(){},                onFinish: function(){}            };            Object.extend(this.options, options || {});        },        //上月        PreMonth: function() {            //取得上月日期对象            var d = new Date(this.Year, this.Month - 2, 1);            //设置属性            this.Year = d.getFullYear();            this.Month = d.getMonth() + 1;            //重绘日历            this.Draw();        },        //下月                    NextMonth: function() {            var d = new Date(this.Year, this.Month, 1);            this.Year = d.getFullYear();            this.Month = d.getMonth() + 1;            this.Draw();        },        //上年        PreYear: function() {            //取得上月日期对象            var d = new Date(this.Year, this.Month - 2, 1);            //设置属性            this.Year = d.getFullYear()-1;            //重绘日历            this.Draw();        },        //下年        NextYear: function() {            var d = new Date(this.Year, this.Month, 1);            this.Year = d.getFullYear()+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(" "); }            //用当月最后一天在一个月中的日期值作为当月的天数            for(var i = 1, monthDay = new Date(this.Year, this.Month, 0).getDate(); i <= monthDay; i++){ arr.push(i); }            //插入日期            var frag = document.createDocumentFragment();            this.Days = [];            while(arr.length > 0){                //每个星期插入一个tr                var row = document.createElement("tr");                //星期                for(var i = 1; i <= 7; i++){                    var cell = document.createElement("td");                    var a     = document.createElement("a");                     var alink = cell.appendChild(a);                    alink.innerHTML = " ";                    if(arr.length > 0){                        var d = arr.shift();                        alink.innerHTML = d;                        if(d > 0){                            this.Days[d] = alink;                                                         var on = new Date(this.Year, this.Month - 1, d);                             //判断是否今日                             if(this.IsSame(on, new Date())){                                a.setAttribute("href",d);                            }                             //判断是否选择日期                             if(this.SelectDay && this.IsSame(on, this.SelectDay)){                                //this.onSelectDay(alink);                                a.setAttribute("href",d);                            }                           }                    }                    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());        }    }; 



[解决办法]
对比GMT时间值应该比较方便...
[解决办法]
最好不要这样写,如果这样,你的日期插件就不通用了。

设置一个callBack,就是点击日期后,执行这个function,在这个function内判断是否需要进行某些操作。
[解决办法]
最好别取客户端的时间去比较,客户端时间是可以用户自己修改的。

热点排行