JS入门学习,写一个简单的选项卡
/* 经过昨天一整天的纠结和摸索。总结下学习初期我最致命的几个问题……
1、var oDiv = document.getElementById(''); 一定要多输,熟悉后o u什么的字母别搞错了 .后不能有空格啥的, E大写这些都还好,Elements 如果是s,后面接的是 className 或者 TagName 。
2、在js中,一定要区分清楚 class 和className ,前面很容易搞混……
3、遍历 for循环后,操作的对象一般是标签或者class,这是很多个对象,所以 一定要有[]…… !!!
*/
------------------------------------------------正文的html ------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>简单的选项卡</title>
<style type="text/css">
#div1 .active{ background:#FF9; }
#div1 div{ width:200px; height:200px; border:1px solid #333; background:#CCC; display:none; }
</style>
</head>
<body>
<div id="div1">
<input class="active" type="button" value="教育" />
<input type="button" value="培训" />
<input type="button" value="招生" />
<input type="button" value="出国" />
<div style="display:block;">教育</div>
<div>培训</div>
<div>招生</div>
<div>出国</div>
</div>
<script src="js/xuanxiangka.js"></script>
</body>
</html>
------------------------------------------javascript代码 ---------------------------------------------------
//window.onload 以后记住,都把它添上吧,有备无患
window.onload = function() {
var oDiv = document.getElementById('div1'); //要操作什么量,就把这些都先声明了
var oBtn = oDiv.getElementsByTagName('input');
var aDiv = oDiv.getElementsByTagName('div');
for(var i=0; i<oBtn.length; i++) { //for循环,具体操作什么看循环中间的值,oBtn所以是操作4个按钮
oBtn[i].index = i; //赋每个按钮的属性(这里的属性是自定义属性)的值为i
oBtn[i].onclick = function() { //对每个按钮添加一个点击的事件
for(var i=0; i<oBtn.length; i++) { //继续用for循环,上一个是点击的for循环,这个循环用来操作点击后的后续事件
oBtn[i].className = ''; //让每个按钮的class名为空
aDiv[i].style.display = 'none'; //让每个div的style样式的display为none;
}
this.className = 'active'; //当前点击(对应onclick)对象的class名为 active
aDiv[this.index].style.display = 'block'; //aDiv(按钮下的div) this.index(赋了i的,就是说当前点击按钮对应的div) 的样式display为none
}
}
}
总结下 今天学到的。 做这样一个选项卡,总的思路就是,
先让所有的都隐藏,再让当前的显示出来~~~~
明天一练,坚持学习, 勤于思考,让自己有所进步和收获~加油
JS入门学习,写一个简单的选项卡的更多相关文章
- 用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...
- 使用 js,自己写一个简单的滚动条
当我们给元素加上 overflow: auto; 的时候,就会出现滚动条,然而浏览的不同,滚动条的样式大不一样,有些甚至非常丑. 于是就想着自己写一个滚动条,大概需要弄清楚一下这几个点: 1.滚动条 ...
- 第一个Three.js程序——动手写一个简单的场景
三维场景基本要素: 步骤: 代码: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- js eval函数写一个简单的计算器
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 原生js 基于canvas写一个简单的前端 截图工具
先看效果 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- laravel学习:php写一个简单的ioc服务管理容器
php写一个简单的ioc服务管理容器 原创: 陈晨 CoderStory 2018-01-14 最近学习laravel框架,了解到laravel核心是一个大容器,这个容器负责几乎所有服务组件的实例化以 ...
- (原创)如何使用boost.asio写一个简单的通信程序(一)
boost.asio相信很多人听说过,作为一个跨平台的通信库,它的性能是很出色的,然而它却谈不上好用,里面有很多地方稍不注意就会出错,要正确的用好asio还是需要花一番精力去学习和实践的,本文将通过介 ...
- 大前端工程化之写一个简单的webpack插件
今天写一个简单的webpack插件,来学习一下webpack插件 webpack插件机制可以使开发者在webpack构建过程中加入自己的行为,来针对自己项目中的一些需求做一些定制化 首先我们得知道一个 ...
随机推荐
- 关于项目中值对象Identifier的设计-领域驱动
到现在为止做了不项目,发现每个实体都会有个相应的值对象. 先简单说一下值对象和实体之间的区别: (以下内容来着<领域驱动设计>一书) 当一个小孩画画的时候,他注意的是画笔的颜色和笔尖的粗细 ...
- Spring MVC 处理静态资源文件
摘要: 三个方案: 1.方案一:激活Tomcat的defaultServlet来处理静态文件 2.方案二: 在spring3.0.4以后版本提供了mvc:resources (需要配置annotati ...
- html中<radio>单选按钮控件标签用法解析及如何设置默认选中
<input type="radio" name="radio" value="1">单选1 <input type=&q ...
- Scalaz(59)- scalaz-stream: fs2-程序并行运算,fs2 running effects in parallel
scalaz-stream-fs2是一种函数式的数据流编程工具.fs2的类型款式是:Stream[F[_],O],F[_]代表一种运算模式,O代表Stream数据元素的类型.实际上F就是一种延迟运算机 ...
- bootstrap分页
使用bootstrap分页插件,如下代码是html代码 <title>分页</title> <link href="page/bootstrap-3.3.5-d ...
- ASP.NET MVC搭建项目后台UI框架—9、服务器端排序
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...
- css2基础知识梳理
基础的css知识,只放XMind的截图. css01 css02 css03 css04 css05 css+div布局是前端的基本功,要多多练习.运用标准流.浮动.定位.层级等,做简单的静态页面.一 ...
- .NET 各种框架
基于.NET平台常用的框架整理 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度 ...
- 请将项目文件中的“AutoGenerateBindingRedirects”属性设置为 true 警告!!!
- 地理数据库 (Geodatabase) 版本管理
版本化地理数据库包含一些非版本化地理数据库中不存在的附加表格和记录.这些附加表和记录有助于长时间执行并行编辑.如果不进行版本化处理,则编辑者需要锁定数据并防止其他用户对数据进行编辑或查看.要使用此功能 ...