【1】html页面定义日历div

<div id="calendar" style="width: 100%;"></div>

【2】

$("#calendar").html();

分两种情况:

全年日历或选择某一个月份单独显示

if (month_select == "0") {
                            showCalendar0(year,  items, ResultList, FalseArr, TrueArr, NoArr);
                        }
                        else if (month_select != "0") {
                            showCalendar1(year, month_select, items, ResultList, FalseArr, TrueArr, NoArr);
                        }

【3】全年日历

showCalendar0(year,  items, ResultList, FalseArr, TrueArr, NoArr);

function showCalendar0(select_year,  items, ResultList, FalseArr, TrueArr, NoArr) {
    var content = "";
    
        for (var i = 0; i < 12; i++) {
            content += "<div style='float:left;width:25%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + i + "'>";

for (var j = 0; j < 42; j++) {
                content += "<li></li>";
            }
            content += "</ul></div>";
        }
    
  
    debugger;
    $("#calendar").html(content);
    var oCal = document.getElementById("calendar");//id='calendar'的对象
    var oTitle = oCal.getElementsByTagName("h1");//得到h1标签元素
    var oUl = oCal.getElementsByTagName("ul");//得到ul标签元素

var addIDArray = new Array();//17
    addIDArray.length = 0;//17

//根据传入的年份重新算时间
    var oDate = new Date();//当前时间的日期对象
    oDate.setYear(select_year);//setYear()用于设置年份

var iYear = oDate.getFullYear();
    //得到年

var bLeap = false;//是否是闰年
    if (iYear % 4 == 0 && iYear % 100 !== 0 || iYear % 400 == 0) bLeap = true;
    var addIDArray = new Array();
    
        for (var m = 0; m < 12; m++) {
        oDate.setMonth(m);//设置月份(0-11,12个月)
        oDate.setDate(1);//设置一个月的某一天(1-31)
        var iMonth = oDate.getMonth();
        //得到月
        var iDay = oDate.getDay();
        //得到星期几
        var iSum = 0;    //存本月天数
        oTitle[m].innerHTML = iYear + "年" + (iMonth + 1) + "月"; //第一个h1标签元素(*年*月)
        
        switch (iMonth + 1) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                iSum = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                iSum = 30;
                break;
            case 2:
                if (bLeap) iSum = 29;
                else iSum = 28;
                break;
        }
         var aLi = oUl[m].getElementsByTagName("li"); //得到第(m+1)个所有li标签元素
        
        //初始化一下
        for (var i = 0; i < aLi.length; i++) {//
            aLi[i].innerHTML = "";//清除内容
            aLi[i].style.height = "40px";
            aLi[i].className = "";
        }
        var month = m < 9 ? "-0" + (m + 1) : "-" + (m + 1);
        for (var i = 1; i <= iSum; i++) {

var day = i < 10 ? "-0" + i : "-" + i;
            var addID = iYear + month + day;
            addIDArray.push(addID);//17

aLi[iDay].setAttribute("id", "a" + addID); 
            $("#a" + addID).html(i);
            for (var f in FalseArr) {
                if (addID == FalseArr[f]) {
                    //['#90ED7D', '#FFBC75', '#999EFF'],
                    $("#a" + addID).css("backgroundColor", "#FFBC75");
                }
            }
            for (var t in TrueArr) {
                if (addID == TrueArr[t]) {
                    $("#a" + addID).css("backgroundColor", "#90ED7D");
                }
            }
            for (var n in NoArr) {
                if (addID == NoArr[n]) {
                    $("#a" + addID).css("backgroundColor", "#999EFF");
                }
            }
            //17
            for (var r in ResultList) {
                if (addID == ResultList[r]["MonitorTime"]) {
                    var strdiv;
                    var strdiv = ""
                    strdiv += "<div class='tip' id='tip" + addID + "'>" + addID + "<br/>";
                    if (items == "AQI") {
                        strdiv += "预测:" + ResultList[r]["fAQI"] + ";实测:" + ResultList[r]["dAQI"];
                    }
                    if (items == "AirLevel") {
                        strdiv += "预测:" + ResultList[r]["fLevel"] + ";实测:" + ResultList[r]["dLevel"];
                    }
                    strdiv += "</div>";
                    $("#a" + addID).append(strdiv);
                }

}//17
            //showdata(addID);
            iDay++;//得到这天是周几,依次往后加
        }
        for (var i = 0; i < addIDArray.length; i++) {
            var liID = "#a" + addIDArray[i];
            var divID = "#tip" + addIDArray[i];
            $(liID).mouseover(function (e) {
                var aid = $(e.target)[0].id;
                var tipid = $("#" + aid + " div")[0].id;
                $("#" + tipid).show();
                //$(divID).css("display", "block");
            });
            $(liID).mouseout(function (e) {
                var aid = $(e.target)[0].id;
                var tipid = $("#" + aid + " div")[0].id;
                $("#" + tipid).hide();
                //$(divID).css("display", "none");
            });
        }

}
    //把没字的格子折叠起来
    for (var i = 0; i < aLi.length; i++) {
        if (aLi[i].innerHTML == "") {
            aLi[i].style.height = "0px";
        }
    }

}

【4】某一个月份日历

//单个月份日历
function showCalendar1(select_year, month, items, ResultList, FalseArr, TrueArr, NoArr) {
    var content = "";
    if (month == "0") {
        for (var i = 0; i < 12; i++) {
            content += "<div style='float:left;width:25%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + i + "'>";

for (var j = 0; j < 42; j++) {
                content += "<li></li>";
            }
            content += "</ul></div>";
        }
    }
    else if (month != "0") {
        content += "<div style='float:left;width:100%;border-right:1px solid #dadada' > <div class='c_header'><h1></h1><ol><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ol></div><ul class='c_body' id='ul" + month + "'>";
        for (var j = 0; j < 42; j++) {
            content += "<li></li>";
        }
        content += "</ul></div>";
    }
    debugger;
    $("#calendar").html(content);
    var oCal = document.getElementById("calendar");//id='calendar'的对象
    var oTitle = oCal.getElementsByTagName("h1");//得到h1标签元素
    var oUl = oCal.getElementsByTagName("ul");//得到ul标签元素

var addIDArray = new Array();//17
    addIDArray.length = 0;//17

//根据传入的年份重新算时间
    var oDate = new Date();//当前时间的日期对象
    oDate.setYear(select_year);//setYear()用于设置年份

var iYear = oDate.getFullYear();
    //得到年

var bLeap = false;//是否是闰年
    if (iYear % 4 == 0 && iYear % 100 !== 0 || iYear % 400 == 0) bLeap = true;
    var addIDArray = new Array();
    var Mbegin = 0;
    var Mend = 12;
    if (month != "0") {
        Mbegin = month - 1;
        Mend = month;
    }
    for (var m = Mbegin; m < Mend; m++) {
        oDate.setMonth(m);//设置月份(0-11,12个月)
        oDate.setDate(1);//设置一个月的某一天(1-31)
        var iMonth = oDate.getMonth();
        //得到月
        var iDay = oDate.getDay();
        //得到星期几
        var iSum = 0;    //存本月天数
        if (month == "0")
        { oTitle[m].innerHTML = iYear + "年" + (iMonth + 1) + "月"; }//第一个h1标签元素(*年*月)
        else if (month != "0")
        { oTitle[0].innerHTML = iYear + "年" + (iMonth + 1) + "月"; }
        switch (iMonth + 1) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                iSum = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                iSum = 30;
                break;
            case 2:
                if (bLeap) iSum = 29;
                else iSum = 28;
                break;
        }
        if (month == "0")
        { var aLi = oUl[m].getElementsByTagName("li"); }//得到第(m+1)个所有li标签元素
        else if (month != "0")
        { var aLi = oUl[0].getElementsByTagName("li"); }
        //初始化一下
        for (var i = 0; i < aLi.length; i++) {//
            aLi[i].innerHTML = "";//清除内容
            aLi[i].style.height = "40px";
            aLi[i].className = "";
        }
        var month = m < 9 ? "-0" + (m + 1) : "-" + (m + 1);
        for (var i = 1; i <= iSum; i++) {

var day = i < 10 ? "-0" + i : "-" + i;
            var addID = iYear + month + day;
            addIDArray.push(addID);//17

aLi[iDay].setAttribute("id", "a" + addID);
            $("#a" + addID).html(i);
            for (var f in FalseArr) {
                //['#90ED7D', '#FFBC75', '#999EFF'],
                if (addID == FalseArr[f]) {
                    $("#a" + addID).css("backgroundColor", "#FFBC75");
                }
            }
            for (var t in TrueArr) {
                if (addID == TrueArr[t]) {
                    $("#a" + addID).css("backgroundColor", "#90ED7D");
                }
            }
            for (var n in NoArr) {
                if (addID == NoArr[n]) {
                    $("#a" + addID).css("backgroundColor", "#999EFF");
                }
            }
            //17
            for (var r in ResultList) {
                if (addID == ResultList[r]["MonitorTime"]) {
                    var strdiv;
                    var strdiv = ""
                    strdiv += "<div class='tip' id='tip" + addID + "'>" + addID + "<br/>";
                    if (items == "AQI") {
                        strdiv += "预测:" + ResultList[r]["fAQI"] + ";实测:" + ResultList[r]["dAQI"];
                    }
                    if (items == "AirLevel") {
                        strdiv += "预测:" + ResultList[r]["fLevel"] + ";实测:" + ResultList[r]["dLevel"];
                    }
                    strdiv += "</div>";
                    $("#a" + addID).append(strdiv);
                }

}//17
            //showdata(addID);
            iDay++;//得到这天是周几,依次往后加
        }
        for (var i = 0; i < addIDArray.length; i++) {
            var liID = "#a" + addIDArray[i];
            var divID = "#tip" + addIDArray[i];
            $(liID).mouseover(function (e) {
                var aid = $(e.target)[0].id;
                var tipid = $("#" + aid + " div")[0].id;
                $("#" + tipid).show();
                //$(divID).css("display", "block");
            });
            $(liID).mouseout(function (e) {
                var aid = $(e.target)[0].id;
                var tipid = $("#" + aid + " div")[0].id;
                $("#" + tipid).hide();
                //$(divID).css("display", "none");
            });
        }

}
    //把没字的格子折叠起来
    for (var i = 0; i < aLi.length; i++) {
        if (aLi[i].innerHTML == "") {
            aLi[i].style.height = "0px";
        }
    }

}

.net篇(1)--js写日历相关推荐

  1. Java写js的Ajax代码_用JS写的一个Ajax库(实例代码)

    myajax是一个用js编写的一个跨浏览器的ajax库,支持get, post, jsonp请求,精巧,简单. 一.发送GET请求: myajax.get({ data: {}, //参数 url: ...

  2. vue+js纯手写日历(包含农历,节假日)

    vue+js纯手写日历(包含农历,节假日) 使用的js 地址 dataChange.js 插件使用了elementui //完整代码 <template><div><di ...

  3. js ...运算符_「 giao-js 」用js写一个js解释器

    前言 在这篇文章中,我们将通过 JS 构建我们自己的 JS 解释器,用 JS 写 JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作的! 什么是解释器 (Int ...

  4. 在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。

    在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好. SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里 ...

  5. js 取得input绑定的datalist中的值_原生JS写一个ToDo Demo

    周六加班没什么事,于是乎...上班摸鱼,用原生JS写了一个ToDo Demo,废话少叙,直接看效果: 如图,实现了以下需求(以下的具体实现我会一一道来): 0.页面的基本布局: 1.rem布局.在不同 ...

  6. node js 写按键精灵_带有按键的Node.js Raw模式

    node js 写按键精灵 I find the stuff that people are doing with Node.js incredibly interesting.  You here ...

  7. js写css字体,js如何写出css动画 ?js写css动画的方法(代码)

    本篇文章给大家带来的内容是关于js如何写出css动画 ?js写css动画的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用setTimeout()或者setInter ...

  8. Python+selenium自动化-js处理日历控件(修改readonly属性)

    前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...

  9. 用three.js写一个小场景

    上次我们用three.js写了一个下雨的动画,主要是用粒子.这次是用three.js搭建了一个小场景. 项目地址依然是:https://github.com/alasolala/threejs-tut ...

最新文章

  1. 视频流中的DTS、PTS到底是什么
  2. BOOST_PREDEF_TESTED_AT宏相关的测试程序
  3. vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?
  4. 将您的SQL Server工作负载迁移到PostgreSQL
  5. Least-Squares Fitting of Two 3-D Point Sets
  6. 关于部分手机无法搜索到5G wifi信号的解决方法
  7. Java发送邮箱验证码、session校验功能
  8. F8Net:只有8比特乘法的神经网络量化
  9. vwf活性_血管性血友病因子(VWF)应该针对血型设置参考范围吗?
  10. 学习笔记——共阳数码管的静态显示
  11. 计算机网络第三章数据链路层习题答案
  12. 与QQ群中一屌人的聊天记录,颇有感触,贴出来,大家共勉一下哦
  13. freebsd php 编译 mysql sql2005_[伊达原创]FreeBSD8.0源码编译安装MYSQL5 APACHE2.2 PHP5.3.2
  14. 网站关键词优化怎么做的(seo如何挖掘关键词)
  15. PHP - Laravel 视图模板(blade.php) 循环便利
  16. HTML+CSS+JS家乡主题网页设计 学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作
  17. 微信小程序连接阿里云物联网平台——物联网远程控制开发1
  18. 关于VMware设置网络
  19. linux装入归档文件时,装入归档文件时发生了错误!!怎么解决?
  20. AtCoder Grand Contest 004 A - Divide a Cuboid 题解

热门文章

  1. zabbix php代码,Zabbix php分布式系统监视 v5.2.5
  2. Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
  3. STM32学习记录——ST-LINK下载器
  4. for循环执行流程面试题(经典)
  5. $().click()和$().on(‘click‘,function(){})的区别
  6. 2021年中国能源消费结构、生产结构及世界能源发展趋势分析:消费结构进一步优化,低成本技术将是企业的核心竞争力[图]
  7. 北京大学前言交叉学科研究院大数据中心夏令营和信科夏令营心得
  8. 排查相机功耗问题时,影响静态亮屏功耗的几个因素
  9. C语言学习笔记知识点齐全——新手入门必看【建议收藏】
  10. iOS,在应用之间共享文档