/* 经过昨天一整天的纠结和摸索。总结下学习初期我最致命的几个问题……

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入门学习,写一个简单的选项卡的更多相关文章

  1. 用node.js从零开始去写一个简单的爬虫

    如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...

  2. 使用 js,自己写一个简单的滚动条

    当我们给元素加上 overflow: auto;  的时候,就会出现滚动条,然而浏览的不同,滚动条的样式大不一样,有些甚至非常丑. 于是就想着自己写一个滚动条,大概需要弄清楚一下这几个点: 1.滚动条 ...

  3. 第一个Three.js程序——动手写一个简单的场景

    三维场景基本要素: 步骤: 代码: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  4. js eval函数写一个简单的计算器

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 原生js 基于canvas写一个简单的前端 截图工具

    先看效果 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  6. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  7. laravel学习:php写一个简单的ioc服务管理容器

    php写一个简单的ioc服务管理容器 原创: 陈晨 CoderStory 2018-01-14 最近学习laravel框架,了解到laravel核心是一个大容器,这个容器负责几乎所有服务组件的实例化以 ...

  8. (原创)如何使用boost.asio写一个简单的通信程序(一)

    boost.asio相信很多人听说过,作为一个跨平台的通信库,它的性能是很出色的,然而它却谈不上好用,里面有很多地方稍不注意就会出错,要正确的用好asio还是需要花一番精力去学习和实践的,本文将通过介 ...

  9. 大前端工程化之写一个简单的webpack插件

    今天写一个简单的webpack插件,来学习一下webpack插件 webpack插件机制可以使开发者在webpack构建过程中加入自己的行为,来针对自己项目中的一些需求做一些定制化 首先我们得知道一个 ...

随机推荐

  1. EF架构~EF异步改造之路~仓储接口的改造

    回到目录 返回异步与并行目录 C#5.0带来了并行编程 {C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程} 随着C#5.0在.net4.5出来之后,它们 ...

  2. 【笔记】Asp.Net WebApi对js POST带参数跨域请求的支持方案

    先说下需求:在原来的WebApi项目中增加对js跨域的请求支持,请求方式:以POST为主,webapi路由规则根据原项目需求修改如下: public static void Register(Http ...

  3. WPF数据编辑的提交与撤销

    当为一个集合(通常绑定在DataGrid或其它ItemsControl控件)添加或编辑一个项时,通常会弹出一个编辑界面编辑项的属性,编辑结束再提交,或者我们不想编辑数据了,此时选择取消,数据项的内容没 ...

  4. virtualbox 虚拟机Ubuntu 传文件-共享

  5. java package一些试验

    目录如上图,当前目录下,b是文件夹, a是文件夹. B.java 源码如下: package b; import a.*; public class B{ public static void mai ...

  6. 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    通讯机制说明 通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接 ...

  7. 彻底解决mysql中文乱码的办法 ???

      MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如p ...

  8. SVG简介

    最近遇到SVG这个名词,于是查阅资料,做个笔记. 前言 图片的数字化.将图片存储为数据有两种方案. 位图.也被称为光栅图.即是以自然的光学的眼光将图片看成在平面上密集排布的点的集合.每个点发出的光有独 ...

  9. getElementsByTagName() 方法

    HTML DOM Document 对象 定义和用法 getElementsByTagName() 方法可返回带有指定标签名的对象的集合. 语法 document.getElementsByTagNa ...

  10. iOS 修改状态栏字体的颜色

    在实际开发中,状态栏有时,需要我们自己设置: 比如: 默认状态栏 假如我们开发的view是黑色的,那么效果如图: 状态栏是白底黑字,下面的view是黑底? 这样子真的好吗?说好的和谐社会呢?说好的开发 ...