前端 javascript 练习题 -简易年历及tab切换
前端 javascript 练习题 -简易年历及tab切换
简易年历
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[i].onclick=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].onclick=function (){
oimg.src='images/'+index+'.png';
index++;
}
}
案例
排他功能
一串input
var oinput=document.getElementsByTagName("input");for(var i=0;i
oinput[i].onclick=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.onclick=function(){
//判断是否应用了类样式
if(odiv.className!="cls"){
odiv.className="cls"; //当有多个类名时需要注意 留着不需要修改的
}else{
odiv.className="dd";
}};
tab切换
主要就是排他功能的应用,下面对应的块,选隐藏,找出点击span时对应的li再让它显示
<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].onclick=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";
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
前端 javascript 练习题--Math、Data及函数封装
好程序员web前端教程将会为大家持续分享前端javascript练习题系列。Math 对象 1.编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)方法:function f2(){ var str="0123456789abcdef"; var color="#"; for(var i=0;i<6;i++){ var num=Math.floor(Math.random()*str.length); color=color+str[num]; } console.log(color);}f2(); date对象数码时钟思路分析:将时分秒的图片,按照一定规则命名,方便后续根据时间设置图片路径方法: <img src="img/0.png" alt="" /> <img src="img/0.png" alt="" /> <span>时</span> <img src="img/0.png" alt="" /> <img src="img/0.png" alt="" /> <span&...
-
下一篇
LeetCode 136:只出现一次的数字 Single Number
题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 Given a non-empty array of integers, every element appears twice except for one. Find that single one. 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解题思路: 排序数组,如果某个数与前后两个数均不相等则该数只出现一次。 哈希映射,key 为每个数的值,value 为每个数出现的频率。最后找到 value = 1 的数返回。 异或运算,直接进行异或操作求值。不使用额外空间。 异或运算(XOR)解题是最优雅的解法,且不使用额外...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 面试大杂烩
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长