前端 javascript 练习题 -简易年历及tab切换

这篇博客介绍了如何使用JavaScript实现简易年历的展示,包括遍历数组并动态更改样式,以及实现tab切换功能。内容包括点击元素改变背景色、事件处理、索引值的运用、排他功能的实现等。同时,给出了tab切换中隐藏和显示内容的逻辑处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简易年历
eg1:将数组中的值输出

改变样式可以直接改样式,也可以修改类名

var okuang=document.getElementById("kuang");var oli=document.getElementsByTagName("li");var arr=[11,22,33,44,55];var index=0;   //定义一个变量用来保存索引值for(var i=0;i<oli.length;i++){  //遍历给每个li添加事件

    oli[i].οnclick=function(){

        for(var j=0;j<oli.length;j++){  //排他功能

            oli[j].style.backgroundColor="#666";

            oli[j].style.color="#fff";

        }

        okuang.innerHTML=arr[index];  //此时不能用arr[i],因为在点击之前for已经执行完了,此时i为oli的元素个数值

        this.style.backgroundColor="red";

        this.style.color="#000";

        index++;

    }}

解析:
for循环是在页面加载的时候,执行完毕了

//  for(var k=0;k<5;k++){

//  }

//  console.log(k);

  //事件是在触发的时候,执行的

tab切换案例
点击按钮换图片:

var oli=document.getElementsByTagName("li"); //获取li标签var oimg=document.getElementsByTagName("img")[0];  //获取图片标签var index=0;  //存储索引值,因为在点击按钮前for已经执行完了

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

        oli[i].οnclick=function (){

            oimg.src='images/'+index+'.png';

            index++;

        }

    }

案例
排他功能
一串input

var oinput=document.getElementsByTagName("input");for(var i=0;i<oinput.length;i++){

    oinput[i].οnclick=function(){

        //先让所有的变成原来的样子

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

            oinput[j].value="晴天";

            oinput[j].style.background="#ccc";

        }

        //再设置当前的样式

        this.value="阴天";

        this.style.background="red";

    }}

通过类名修改样式

var oinput=document.getElementById("btn");var odiv=document.getElementById("dv");

oinput.οnclick=function(){

    //判断是否应用了类样式

    if(odiv.className!="cls"){

        odiv.className="cls";  //当有多个类名时需要注意  留着不需要修改的

    }else{

        odiv.className="dd";

    }};

tab切换
主要就是排他功能的应用,下面对应的块,选隐藏,找出点击span时对应的li再让它显示

<div class="box" id="box">

    <div class="hd">

        <span class="current">体育</span>

        <span>娱乐</span>

        <span>新闻</span>

        <span>综合</span>

    </div>

    <div class="bd">

        <ul>

            <li class="current">我是体育模块</li>

            <li>我是娱乐模块</li>

            <li>我是新闻模块</li>

            <li>我是综合模块</li>

        </ul>

    </div></div><script>

var obox=document.getElementById("box");

    var hd=obox.getElementsByTagName("div")[0];

    var bd=obox.getElementsByTagName("div")[1];

    var oli=bd.getElementsByTagName("li");

    var ospan=hd.getElementsByTagName("span");

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

        ospan[i].setAttribute("index",i); //点击之前就把索引保存在span标签中

        ospan[i].οnclick=function(){

            //将所有的span样式移除

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

                ospan[j].className="";

                //ospan[j].removeAttribute("class");

            }

           // 设置当前的span类样式

        this.className="current";

 

           //先将所有地li隐藏

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

                oli[k].removeAttribute("class");

           }

            //获取当前被点击的索引值

            var index=this.getAttribute("index");

            //当前点击span对应的li显示

            oli[index].className="current";

        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值