var Calendar = {}; Calendar.$ = function (id){ return document.getElementById(id);//id选择器 } /** * 初始化方法 * @param context * @param startYear * @param floatYear */ Calendar.init = function (startYear,floatYear,context){ try { this.constructor = Calendar.init; this.context = this.defaultContext;//默认执行上下文 this.context = context ? context.nodeType === 1 ? context : this.$(context):context||this.$("calendarSelect");//选择要渲染的空间 this.context.style.width = "100px";//默认长度 this.startYear = startYear||new Date().getFullYear();//开始的年份,默认当前年 this.floatYear = floatYear || 10;//浮动多少年 this.createOption = createOption(this.startYear,this.floatYear);//创建option } catch (e) { alert(e); } return this; } /** * 创建option * @param startYear */ function createOption(startYear,floatYear){ var fragment = document.createDocumentFragment(); fragment = tempCreateOption(fragment,floatYear,true); var currenYearOption = document.createElement("option"); currenYearOption.selected = 'selected';//设置当前年为选中 currenYearOption.appendChild(document.createTextNode(startYear)) fragment.appendChild(currenYearOption); fragment = tempCreateOption(fragment,floatYear,false); Calendar.context.appendChild(fragment); return this; } function tempCreateOption(fragment,floatYear,flag){ for(var i = flag?floatYear:1 ;flag?i>=1:i < floatYear ; flag?i--:i ++){ var option = document.createElement("option"); var tmp = flag ? this.startYear+ i : this.startYear-i; var text = document.createTextNode(Calendar.startYear + (flag?i:-i)); option.appendChild(text); fragment.appendChild(option); } return fragment; }