javascript-案例 简易日历(无this.index)

送分小仙女□ 提交于 2019-11-30 13:22:05

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

    <style type="text/css">

        * { padding: 0; margin: 0; }

        li { list-style: none; }

        body { background: #f6f9fc; font-family: arial; }

        

        .calendar { width: 210px; margin: 0 auto; padding: 10px 10px 20px 20px; background: #eae9e9; }

        .calendar ul { width: 210px; overflow: hidden; padding-bottom: 10px; }

        .calendar li { float: left; width: 58px; height: 54px; margin: 10px 10px 0 0; border: 1px solid #fff; background: #424242; color: #fff; text-align: center; cursor: pointer; }

        .calendar li h2 { font-size: 20px; padding-top: 5px; }

        .calendar li p { font-size: 14px; }

        

        .calendar .active { border: 1px solid #424242; background: #fff; color: #e84a7e; }

        .calendar .active p { font-weight: bold; }

        

        .calendar .text { width: 178px; padding: 0 10px 10px; border: 1px solid #fff; padding-top: 10px; background: #f1f1f1; color: #555; }

        .calendar .text h2 {font-size: 14px; margin-bottom: 10px; }

        .calendar .text p { font-size: 12px; line-height: 18px; }

        

        

        </style>        

</head>

<body>

    <div id="tab" class="calendar">

        <ul id="box">

            <li class="active"><h2>1</h2><p>JAN</p></li>

            <li ><h2>2</h2><p>FER</p></li>

            <li ><h2>3</h2><p>MAR</p></li>

            <li ><h2>4</h2><p>APR</p></li>

            <li ><h2>5</h2><p>MAY</p></li>

            <li><h2>6</h2><p>JUN</p></li>

            <li><h2>7</h2><p>JUL</p></li>

            <li><h2>8</h2><p>AUG</p></li>

            <li><h2>9</h2><p>SEP</p></li>

            <li><h2>10</h2><p>OCT</p></li>

            <li><h2>11</h2><p>NOV</p></li>

            <li><h2>12</h2><p>DEC</p></li>

        </ul>

        <div class="text" id="txt">

            <h2>1月活动</h2>

            <p>快过年了,大家可以商量着去哪玩吧~</p>

        </div>

    </div>

</body>

<script>

    var arr=['快过年了,大家可以商量着去哪玩吧~',

        '大家好好学习吧222222~~~',

        '大家好好学习吧222222333~~~',

        '大家好好学习吧222444222~~~',

        '大家好好学习555吧222222~~~',

        '大家好好学习吧666222222~~~',

        '大家好好学习吧227772222~~~',

        '大家好好学习吧28888822222~~~',

        '大家好好学习吧99999222222~~~',

        '大家好好学习10000000吧222222~~~',

        '大家好好学习吧111111222222~~~',

        '大家好好学习吧22222200000000000~~~']

    

    var ali = document.querySelectorAll("#box li");

    var oh2 = document.getElementById("txt").children[0];

    var op = document.getElementById("txt").children[1];


 

    // for(var k=0;k<ali.length;k++){

    //     ali[k].abc = k;

    // }


 

    // 所有li绑定点击事件

    // 循环立即执行,不会等事件

    for(var i=0;i<ali.length;i++){

        // 提前给每个li都编号(默认没有编号)

        ali[i].abc = i;

        // 事件在将来被点击的时候触发

        ali[i].onclick = function(){

            // 等触发事件时,循环早就执行完了,外面的循环的计数器i已经是最后一个了,length

            // 所以再写一个循环,重新遍历li

            // 取消所有

            for(var j=0;j<ali.length;j++){

                ali[j].className = "";

            }

            // this:执行当前函数的对象

            // console.log(this)

            // 给当前加上

            this.className = "active";

 

            // 找到索引

            console.log(this.abc)

            // 根据索引找到数组中的数据

            oh2.innerHTML = this.abc+1 + "月活动";

            op.innerHTML = arr[this.abc]

        }

    }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!