【JS学习笔记】关于选项卡,关于this,关于innerHTML

this:当前发生事件的元素。

简易的选项卡代码。思路,先把所有的都隐藏,再把当前的显示出来。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
#div1 .active{
    background:yellow;
    }
#div1 div{
    width:200px;
    height:200px;
    background:#ccc;
    border:1px solid #999;
    display:none;/*让所有div都看不到*/
    }
</style>
<script>
window.onload=function (){
    var oDiv=document.getElementById(‘div1‘);
    var aBtn=document.getElementsByTagName(‘input‘);
    var aDiv=oDiv.getElementsByTagName(‘div‘);
    
    for(var i=0;i<aBtn.length;i++)
    {
        aBtn[i].index=i;//循环的时候,先给每个button一个自定义属性index
        aBtn[i].onclick=function ()//给所有的按钮都加上onclick事件,在它点击某个按钮的时候发生以下函数
        {
            for(var i=0;i<aBtn.length;i++)
            {
                aBtn[i].className=‘‘;//在点击选项卡之前的一瞬间,先让所有按钮都没有class效果,也就是让class变空。
                aDiv[i].style.display=‘none‘;//在点击选项卡按钮之前一瞬间,先让所有div里面的元素隐藏了。
                }
            //alert(this.value);this:当前发生事件的元素
            this.className=‘active‘;
            aDiv[this.index].style.display=‘block‘;
            };
        }
    //总结思路,先把所有的都隐藏,再把当前的显示出来
    };
    
</script>
</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;">1111</div>
        <div>2222</div>
        <div>3333</div>
        <div>4444</div>
    </div>
</body>
</html>

利用innerHTML做简易日历

css文件代码

@charset "utf-8";
/* CSS Document */

*{
    margin:0px;
    padding:0px;
    }

#tab{
    width:427px;
    height:780px;
    border:1px solid #000;
    margin:0 auto;
    }

ul{
    list-style:none;
    width:427px;
    }
li{
    cursor: pointer;
    float:left;
    width:100px;
    height:100px;
    background:#000;
    margin:10px;
    padding:10px;
    border:1px solid #000;
    color:#FFF;
    text-align:center;
    }
    
.active
{
    float:left;
    width:100px;
    height:100px;
    background:#FFF;
    margin:10px;
    padding:10px;
    border:1px solid #F00;
    color:#F00;
    text-align:center;
}

.text{
    clear:both;
    width:405px;
    height:200px;
    border:1px solid #000;
    margin:0 auto;
    text-align:center;
    }

html文件代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link rel="stylesheet" href="zns.css" type="text/css" />
<script>
window.onload = function ()
{
    var arr=[
        ‘快过年了,大家商量着去哪玩吧‘,
        ‘22222222222‘,
        ‘33333333333‘,
        ‘4444444444‘,
        ‘55555555‘,
        ‘666666666666666‘,
        ‘777777777777‘,
        ‘88888888888‘,
        ‘9999999999999‘,
        ‘10101010100101‘,
        ‘1111‘,
        ‘12121212‘
    ];
    var oDiv=document.getElementById(‘tab‘);
    var aLi=oDiv.getElementsByTagName(‘li‘);
    var oTxt=oDiv.getElementsByTagName(‘div‘)[0];
    
    for(var i=0;i<aLi.length;i++)
    {
        aLi[i].index=i;//给所有li加上index,可以用来取月份数
        aLi[i].onmouseover = function ()
        {
            for(var i=0;i<aLi.length;i++)
            {
                aLi[i].className=‘‘;//所有li清除active样式效果
                }
                this.className=‘active‘;
                
                oTxt.innerHTML=‘<h2>‘+(this.index+1)+‘月活动</h2><p>‘+arr[this.index]+‘</p>‘;
            };
        }
    };
</script>
</head>

<body>
<div id="tab" class="calendar">
    <ul>
        <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">
        <h2>1月活动</h2>
        <p>快过年了,大家商量着去哪玩吧</p>
    </div>
</div>
</body>
</html>

时间: 2024-10-12 08:50:20

【JS学习笔记】关于选项卡,关于this,关于innerHTML的相关文章

Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <script src="https://cdn.bootcss.com/vue/2.2.

[Pro Angular.JS]学习笔记1.1:设置开发环境

可以使用yeoman.io,很方便.我已经写了一篇随笔,介绍如何使用.这里也有一篇介绍的文章:http://www.cnblogs.com/JoannaQ/p/3756281.html 代码编辑器,在Mac下用了一下WebStorm,太恶心了.另外发现书的作者使用的开发环境是Windows + VS Express 2013,为了方便学习,我也使用VS Express 2013 Update2.VS2013用起来蛮舒服的,把WebStorm比得跟驼屎一样.也许是因为我没用习惯吧. 1.安装Nod

【转】Backbone.js学习笔记(二)细说MVC

文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 1: (function() { 2: Backbone.Events // 自定义事件 3: Backbone.Model // 模型构造函数和原型扩展 4: Backbone.Collection // 集合构造函数和原型扩展 5: Backbone.Router // 路由

Angular JS 学习笔记

特定领域语言 编译器:遍历DOM来查找和它相关的属性, 分为编译和链接两个阶段, 指令:当关联的HTML结构进入编译阶段时应该执行的操作,可以写在名称里,属性里,css类名里:本质上是函数 稳定的DOM:绑定了数据模型的DOM元素的实例不会在绑定的生命周期发生改变 作用域:用来检测模型的改变和为表达式提供执行上下文的 AngularJS 和其它模板系统不同,它使用的是DOM而不是字符串 指令: 由某个属性.元素名称.css类名出现而导致的行为,或者说是DOM的变化 Filter过滤器:扮演着数据

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

JS学习笔记-OO疑问之封装

封装是面向对象的基础,今天所要学习的匿名函数与闭包就是为了实现JS的面向对象封装.封装实现.封装变量,提高数据.系统安全性,封装正是面向对象的基础. 匿名函数 即没有名字的函数,其创建方式为 function(){...} 单独存在的匿名函数,无法运行,可通过赋值给变量调用或通过表达式自我执行来实现运行. 1.赋值给变量为一般的函数使用方式 var run = function(){ return '方法运行中'; }; alert(run()); 2.通过表达式自我执行 (function(a

每日js学习笔记2014.5.4

<script language="javascript">var mystring = "这是第一个正则表达式的例子";var myregex = new RegExp("这是"); //创建正则表达式if (myregex.test(mystring)) //test的功能是查找字符串中是否有匹配项,有则返回true,没有则返回false{ document.write ("找到了指定的模式");}else{

每日js学习笔记2014.5.5

<script language="javascript"><!-- var textstr = prompt("请输入一个字符串:",""); //prompt的用法,包含两个参数 var regex = /[A-Z][a-z]tion/; //[A-Z]有无匹配项 var result = regex.test(textstr); //test的用法 document.write ("<font size='

JS学习笔记-OO疑问之对象创建

问一.引入工厂,解决重复代码 前面已经提到,JS中创建对象的方法,不难发现,基本的创建方法中,创建一个对象还算简单,如果创建多个类似的对象的话就会产生大量重复的代码. 解决:工厂模式方法(添加一个专门创建对象的方法,传入参数避免重复) function createObject(name,age){ var obj =new Object(); //创建对象 obj.name = name; obj.age = age; obj.run = function(){ return this.nam

js学习笔记知识点

AJAX用法安全限制JSONPCORS面向对象编程创建对象构造函数原型继承class继承 AJAX 用法 AJAX不是JavaScript的规范,它只是一个哥们"发明"的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求 在现代浏览器上写AJAX主要依靠XMLHttpRequest对象: 'use strict'; function success(text) { var textarea = document.getE