1.this的使用

this
js中的关键字
js内部已经定义好了,可以不声明 直接使用
this的指向问题
1. 在函数外部使用
this指向的是window
2. 在函数内部使用
有名函数
直接调用函数 this指的还是window
通过事件调用,事件是谁触发的 this指的就是谁
匿名函数
通过事件调用,事件是谁触发的 this指的就是谁

<body>
<div id="box">box</div>
<script>
alert(this); //[object Window]
//------------------------------------------ function fn(){
alert( this );
}
fn(); // 直接调用 ,函数内的this 指的还是 [object Window] document.onclick = fn; //[object HTMLDocument] var box = document.getElementById("box");
box.onclick = fn; //[object HTMLDivElement]
//------------------------------------------ // 匿名函数 由事件调用,事件由谁触发 this指向谁
document.onclick = function(){
alert(this);
};
var box = document.getElementById("box");
box.onclick = function(){
alert(this);
}
</script>
</body>

2.模拟单选框

模拟单选框效果图
方法一:大清洗,在设置颜色之前把所有的颜色值设为空。然后再设置点击框的颜色。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
width:100px;
height:100px;
border: 1px solid #000;
display: inline-block;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<script> var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
// alert( "for执行中,此次i是" + i);
// alert( "此次为 第 "+ i +" 个div 添加点击事件处理函数" )
divs[i].onclick = function(){
// alert(i);
// 把 所有的 div 颜色 清除
for (var i = 0; i < divs.length; i++) {
divs[i].style.backgroundColor = "";
}
// 为点击的这个div添加颜色
this.style.backgroundColor = "cornflowerblue";
}
}
</script>
</body>
</html>

方法二:点击什么,清除什么。记录当前点击的。

<body>
<div></div>
<div></div>
<div></div>
<script>
var divs=document.getElementsByTagName("div");
var now=0;
for( var i=0; i<divs.length;i++){
divs[i].index=i;//建立索引,记录每一个节点值。
divs[i].onclick=function () {
divs[now].style.background="";
this.style.background="coral";
now=this.index; }
}
</script>
</body>

3.选项卡

模拟选项卡

方法一:大清洗,在设置颜色之前把所有的颜色值设为空。然后再设置点击框的颜色。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 100px;
height: 100px;
background: red;
font:20px/2 "宋体";
color:#fff;
display: none;
margin-top: 20px; }
button{
width: 100px;
line-height: 50px;
font-size:18px;
background: none;
}
.show{
display: block;
}
.active{
background: cornflowerblue;
}
</style>
</head>
<body>
<button class="active">选项卡一</button>
<button>选项卡二</button>
<button>选项卡三</button>
<div class="show">内容一</div>
<div>内容二</div>
<div>内容三</div>
<script>
var btns=document.getElementsByTagName("button");
var divs=document.getElementsByTagName("div");
for(var i=0;i<divs.length;i++){
btns[i].index=i;
btns[i].onclick=function () {
for(var i=0;i<divs.length;i++) {
btns[i].className="";
divs[i].className=""; }
this.className="active";
divs[this.index].className="show";
}
}
</script>
</body>
</html>

方法二:点击什么,清除什么。记录当前点击的。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 100px;
height: 100px;
background: red;
font:20px/2 "宋体";
color:#fff;
display: none;
margin-top: 20px; }
button{
width: 100px;
line-height: 50px;
font-size:18px;
background: none;
}
.show{
display: block;
}
.active{
background: cornflowerblue;
}
</style>
</head>
<body>
<button class="active">选项卡一</button>
<button>选项卡二</button>
<button>选项卡三</button>
<div class="show">内容一</div>
<div>内容二</div>
<div>内容三</div>
<script>
var btns=document.getElementsByTagName("button");
var divs=document.getElementsByTagName("div");
var now=0;
for(var i=0;i<divs.length;i++){
btns[i].index=i;
btns[i].onclick=function () {
btns[now].className="";
divs[now].className="";
this.className="active";
divs[this.index].className="show";
now=this.index;
}
}
</script>
</body>
</html>

4.模拟复选框

模拟复选框查看效果以及代码!!!!

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 100px;
height: 100px;
border:1px solid black;
float: left;
margin-right: 10px;
}
.active{
background: cornflowerblue;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<script>
var divs=document.getElementsByTagName("div");
console.log(divs);
var L=divs.length;
for(var i=0;i<L;i++){
// true表示没被点击
// false表示被点击了
divs[i].onoff=true;
divs[i].onclick=function () {
if(this.onoff){//如果没被点击,则添加背景颜色
this.className="active";
}else{//如果点击了,则清空背景颜色
this.className="";
}
this.onoff=!this.onoff;//只要点击了,就将此div的自定义属性值取反。
}
}
</script>
</body>
</html>

JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框的更多相关文章

  1. JS基础入门篇(三十五)—面向对象(二)

    如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)

  2. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

  3. JS基础入门篇(二十七)—BOM

    虽然上次写到js基础篇(二十四),这次直接写到(二十七).是为了提醒自己中间有几篇没写.特此说明一下啊. 1.window.open() 使用a标签呢,点击一下a标签页面才会跳转,有时候我们需要做的操 ...

  4. JS基础入门篇(二十四)—DOM(下)

    1.offsetLeft/offsetTop offsetLeft/offsetTop : 到定位父级节点的距离. <!DOCTYPE html> <html lang=" ...

  5. JS基础入门篇(三十四)— 面向对象(一)

    1.对象 对象的定义 : 对象 是 由 键值对 组成的无序集合. 创建对象两种方法 : 方法一 : 字面量方法 var obj = {name: "k"}; 方法二 : new O ...

  6. JS基础入门篇(四十三)—ES6(二)

    1.对象简洁表示法 原来写法 var name = "lzf"; var gender = "male"; var fn = function(){consol ...

  7. JS基础入门篇(二十四)—DOM(上)

    1.常用的节点类型,nodeType,attributes,childNodes. 1.元素节点 - 1 2.属性节点 - 2 3.文本节点 - 3 4.注释节点 - 8 5.文档节点 - 9 查看节 ...

  8. JS基础入门篇(六)— 数据类型

    1.数据类型 数据类型:我感觉就是对数据的种类进行分类.就好比把人分为儿童,青少年,中年,老年一样. 基础数据类型: Number(数字),String(字符串),Null(空),Undefined( ...

  9. JS基础入门篇( 三 )—使用JS获取页面中某个元素的4种方法以及之间的差别( 一 )

    1.使用JS获取页面中某个元素的4种方法 1.通过id名获取元素 document.getElementById("id名"); 2.通过class名获取元素 document.g ...

随机推荐

  1. Eclipse+Pydev环境下出现error “eclipse Non-UTF-8 code”

    文件首行加上”#coding=utf-8”   ,这一句话可控制代码中可输入中文字符

  2. Caused by: java.lang.ClassNotFoundException: com.alibaba.dubbo.common.Version

    <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-bo ...

  3. SAP选择屏幕开发(二)(转)

    原文链接:https://blog.csdn.net/wtxhai/article/details/90698683 1.2.SAP屏幕框架的创建        SAP页面设计中的框架不但可以保证SA ...

  4. Linux命令行基础操作

    目录 1.打开终端命令行 2.常用快捷键 2.1 tab键 2.2 Ctrl+c组合键 2.3 Ctrl+d组合键 2.4Ctrl+Shift+c组合键和Ctrl+Shift+v组合键 2.5图形界面 ...

  5. CentOS tcpdump的使用实例

    tcpdump是一个用于截取网络分组,并输出分组内容的工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具. 选项: -A 以ASCII格式打印 ...

  6. 两台centos,用yum install 安装,一台成功,一台失败

    记录一下问题: 两台centos,用yum install 安装软件,一台成功,一台失败 第一步:查看yum源  yum repolist enabled 疑问:centos安装的方法一致,但yum源 ...

  7. php页面出现空白解决方法

    查询php程序使用内存情况 $size = memory_get_usage(); file_put_contents("d:/data.php", var_export($siz ...

  8. python小学堂1

    sun=0 start=1 while True: start1=start%2 if start1==1: sun = start + sun elif start1==0: sun=sun-sta ...

  9. Linux学习笔记2-CentOS7安装tomcat8

    1.下载tomcat:apache-tomcat-8.5.16.tar.gz 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat ...

  10. 微信小程序(9)--音频及视频弹幕

    记录微信小程序音频及视频弹幕播放效果. 1.audio <!-- audio.wxml --> <audio poster="{{poster}}" name=& ...