JS---DOM---点击操作---part1---20个案例
点击操作:------>事件: 就是一件事, 有触发和响应, 事件源
按钮被点击,弹出对话框
- 按钮---->事件源
- 点击---->事件名字
- 被点了--->触发了
- 弹框了--->响应
案例1:点击按钮弹出对话框
以下全部是理解,html和js代码分离:
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>jane的自学转行</title>
</head> <body>
<!--第一个版本-->
<!--html代码,点击按钮弹出对话框,对话框:alert()====>js的代码-->
<!--html代码中嵌入了js的代码,不方便后期的修改和维护-->
<input type="button" value="显示效果" onclick="alert('我被点了')" />
<!--最终的效果:应该把js代码和html分离--> <!--第二个版本: js代码很多,但是没有分离html和js该怎么做-->
<script>
function f1() {
//函数中可以写很多的代码
alert("这是一个对话框");
}
</script>
<input type="button" value="显示效果" onclick="f1()" />
<!--开始分离html和js-->
<input type="button" value="开始分离代码" id="btn" />
<script>
function f2() {
alert("开发分离html和js代码");
}
//html标签中的id属性中存储的值是唯一的,
//id属性就像人的身份证号码一样,不能重复,页面中的唯一的标识
//从文档中找到id值为btn的这个标签(元素)
//document.getElementById("id属性的值");======>返回的是一个元素对象
//根据id获取这个标签(元素)
var btnObj = document.getElementById("btn");
//为按钮注册点击事件
btnObj.onclick = f2;//不加括号
</script> <!--最终的版本代码:-->
<input type="button" value="最终版" id="btn1" />
<script>
// //根据id属性的值从整个文档中获取这个元素(标签)
var btnObj1 = document.getElementById("btn1");
//为该元素注册点击事件
btnObj1.onclick = function () {
alert("哦,这真是太好了");
}; //根据id属性的值从整个文档中获取这个元素(标签)
//为该元素注册点击事件
document.getElementById("btn1").onclick = function () {
alert("哦,这真是太好了");
};
</script>
</body> </html>
最终代码:
<input type="button" value="按钮" id="btn" />
<script>
var btnObj = document.getElementById("btn");
btnObj.onclick = function () {
alert("哦,小苏好帅哦");
}; // document.getElementById("btn").onclick = function () {
// alert("哦,小苏好帅哦");
// };
</script>
案例2:点击按钮显示图片
点击按钮的时候,设置img标签的src属性有一个图片的路径
<input type="button" value="显示图片" id="btn" />
<img src="" alt="" id="im" /> <script>
var btnObj = document.getElementById("btn");
//为按钮注册点击事件,添加事件处理函数
btnObj.onclick = function () {
//根据id获取图片的标签,设置图片的src属性值
var imObj = document.getElementById("im");
imObj.src = "images/liuyan.jpg";
//设置图片的大小
imObj.width = "300";
imObj.height = "400";
};
案例3:点击按钮,修改p标签的显示内容
<input type="button" value="设置p的内容" id="btn" />
<p id="p1">我是一个p标签</p> <script>
// 根据id获取按钮, 为按钮注册点击事件, 添加事件处理函数
document.getElementById("btn").onclick = function () {
//根据id获取p标签,设置内容
document.getElementById("p1").innerText = "这是一个p";
};
案例4:点击按钮修改a标签的地址和热点文字
1. a标签在新页面打开
2. 优化后:
<input type="button" value="显示效果" id="btn" />
<a href="https://www.jiumodiary.com/" id="ak" target="_blank">鸠摩搜书</a> <script>
//根据id获取按钮,注册点击事件,添加事件处理函数
// document.getElementById("btn").onclick = function () {
// //根据id获取超链接,设置href属性
// document.getElementById("ak").href = "http://www.itcast.cn";
// //根据id获取超链接,设置文字内容
// document.getElementById("ak").innerText = "传智播客";
// }; //优化后的:
document.getElementById("btn").onclick = function () {
var aObj = document.getElementById("ak");
aObj.href = "http://www.itcast.cn";
aObj.innerText = "传播智客";
};
</script>
案例5:点击按钮设置多个p标签的文字内容
- document.getElementsByTagName("标签的名字");返回的是一个伪数组,
- 无论获取的是一个标签,还是多个标签,最终都是在数组中存储的,这行代码的返回值就是一个数组
<input type="button" value="请点击以查看效果" id="btn" />
<div id="dv1">
<p>我是一朵小红花开在春风里</p>
<p>我是一朵小红花开在春风里</p>
<p>我是一朵小红花开在春风里</p>
<p>我是一朵小红花开在春风里</p>
<p>我是一朵小红花开在春风里</p>
</div>
<div>
<p>我是一颗小草,开在雪天里</p>
<p>我是一颗小草,开在雪天里</p>
<p>我是一颗小草,开在雪天里</p>
<p>我是一颗小草,开在雪天里</p>
</div>
<script>
document.getElementById("btn").onclick = function () {
//获取div里面的p
var pObjs = document.getElementById("dv1").getElementsByTagName("p");
//遍历数组设置文字
for (var i = 0; i < pObjs.length; i++) {
pObjs[i].innerText = "我们都是p";
}
};
</script>
实现效果:
案例6:点击按钮修改图片的alt和title属性
<input type="button" value="显示效果" id="btn" />
<img src="data:images/cangjingkong.jpg" alt="和新浪吉祥物合影" title="参加新浪活动" />
<script>
document.getElementById("btn").onclick = function () {
var imgObjs = document.getElementsByTagName("img");
//ElementByTagName返回的是伪数组
imgObjs[0].alt = "改了";
imgObjs[0].title = "新浪"
};
</script>
案例7:点击按钮修改所有文本框的值
<input type="button" value="请点击修改文本框的值" id="btn"> <br />
<input type="text" value="" /> <br />
<input type="text" value="" /> <br />
<input type="text" value="" /> <br />
<input type="text" value="" /> <br />
<input type="text" value="" /> <br /> <script>
//根据id获取按钮,为按钮注册点击事件,添加事件处理函数
document.getElementById("btn").onclick = function () {
//获取所有的文本框
var inputs = document.getElementsByTagName("input");
//判断这个元素是不是按钮
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type != "button") {
inputs[i].value = "两只黄鹂鸣翠柳"
}
}
};
</script>
案例8:点击每个图片弹出对话框
<img src="data:images/1.jpg" alt="" />
<img src="data:images/2.jpg" alt="" />
<img src="data:images/3.jpg" alt="" />
<script>
var imgObjs = document.getElementsByTagName("img");
for (var i = 0; i < imgObjs.length; i++) {
imgObjs[i].onclick = function () {
alert("被点击了");
};
}
案例9:点击按钮修改按钮的value属性
<input type="button" value="按钮" id="btn" />
<script>
//在某个元素的事件中,自己的事件中的this就是当前的这个元素对象
var btnObj = document.getElementById("btn");
btnObj.onclick = function () {
//修改按钮的value属性
this.value = "我是按钮";
this.type = "text";
this.id = "btn2"; //id也可以修改
};
</script>
案例10:点击图片修改自身的宽和高
<img src="data:images/liuyan.jpg" alt="" id="im" />
<script>
var imgObj = document.getElementById("im");
imgObj.onclick = function () {
this.width = "200";
this.height = "300";
};
</script>
案例11:排他功能
1. 所有按钮value值设为默认值
2. 当前被点击的按钮另设置
<input type="button" value="没怀孕" />
<input type="button" value="没怀孕" />
<input type="button" value="没怀孕" />
<input type="button" value="没怀孕" />
<input type="button" value="没怀孕" />
<script>
//获取所有的按钮,分别注册点击事件
var btnObjs = document.getElementsByTagName("input");
//循环遍历所有的按钮
for (var i = 0; i < btnObjs.length; i++) {
btnObjs[i].onclick = function () {
//再用循环,把所有的按钮的value值设置为默认的值
for (var j = 0; j < btnObjs.length; j++) {
btnObjs[j].value = "没怀孕";
}
//当前被点击的按钮设置
this.value = "怀孕了"; //这里不能用btnObjs[i],注意
};
}
</script>
案例12:点击图片标签,设置图片标签的src路径为超链接中大图的路径
<a href="images/1.jpg" id="ak">
<img src="data:images/1-small.jpg" alt="小图" id="im">
</a>
<script>
document.getElementById("im").onclick = function () {
this.src = document.getElementById("ak").href;
};
</script>
案例13:点击按钮修改图片
根据id获取对象--->封装成一个函数
<input type="button" value="点击显示大图" id="btn" />
<img src="data:images/1-small.jpg" alt="" id="im">
<script>
function my$(id) {
return document.getElementById(id);
} my$("btn").onclick = function () {
my$("im").src = "images/1.jpg";
};
</script>
案例14:点击按钮修改性别和兴趣
<input type="button" value="修改性别" id="btn1">
<input type="radio" value="1" name="sex" />男
<input type="radio" value="2" name="sex" id="rad1" />女
<input type="radio" value="3" name="sex" />保密
<script> function my$(id) {
return document.getElementById(id);
}
my$("btn1").onclick = function () {
my$("rad1").checked = true;
};
</script>
<br /> <input type="button" value="选择兴趣" id="btn2" />
<input type="checkbox" value="1" name="xingqu" id="ck1" />吃饭
<input type="checkbox" value="1" name="xingqu" />睡觉
<input type="checkbox" value="1" name="xingqu" />打豆豆
<input type="checkbox" value="1" name="xingqu" id="ck2" />玩手机
<script>
my$("btn2").onclick = function () {
my$("ck1").checked = true;
my$("ck2").checked = true;
};
</script>
案例15:点击按钮选择菜单
<input type="button" value="点菜" id="btn" />
<select name="" id="ss">
<option value="1">毛肚</option>
<option value="2">鸭血</option>
<option value="3" id="op1">鸭肠</option>
<option value="4">海带</option>
<option value="5">金针菇</option>
</select> <script src="common.js"></script>
<script>
my$("btn").onclick = function () {
my$("op1").selected = true;
};
</script>
附加:点击按钮修改文字框中的字
<script src="common.js"></script>
<textarea name="" id="tt" cols="30" rows="10" readonly>
某人问智者,
大师:您觉得怎么做才是最快乐的?
回答说:不要和愚者辩论
这个人说:我不这么认为!
大师说:您说的对,
我就是这么帅
</textarea>
<input type="button" value="注册" id="btn2" />
<script>
my$("btn2").onclick = function () {
my$("tt").value = "嘎嘎"; //推荐用value,看成表单标签
//my$("tt").innerText="哈哈";
};
案例16:点击按钮设置div的宽,高和背景颜色
<!--一个按钮 -->
<input type="button" value="设置样式" id="btn" />
<!-- 画个盒子? -->
<div id="dv"></div>
<!-- 引入common.js 里面存储常用的js函数 -->
<script src="common.js"></script>
<!-- 另起一个script在里面写 -->
<script>
my$("btn").onclick = function () {
my$("dv").style.width = "300px";
my$("dv").style.height = "200px";
my$("dv").style.backgroundColor = "hotpink"; //css中这个属性是多个单词的写法, 在js代码中DOM操作的时候.把-干掉, 后面的单词的首字母大写即可
};
</script>
案例17:点击按钮显示和隐藏div
<!-- 画个按钮 -->
<input type="button" value="隐藏" id="btn" />
<!-- 画个盒子 -->
<div id="dv"></div>
<!-- 引入common.js存储常用的js函数 -->
<script src="common.js"></script>
<!-- 开始写行为 -->
<script>
my$("btn").onclick = function () {
// 点隐藏后div隐藏 按钮文字变为显示
if (this.value == "隐藏") {
my$("dv").style.display = "none";
this.value = "显示";
} else if (this.value == "显示") {
// 否则,点显示后,div显示,按钮文字变为隐藏
my$("dv").style.display = "block";
this.value = "隐藏";
}
};
</script>
案例18:点击按钮设置div的样式
1. 在js代码中DOM操作的时候,设置元素的类样式,不用class关键字,应该使用,className
<head>
<meta charset="UTF-8">
<title>jane自学转行</title>
<!-- <style>
.cls {
width: 300px;
height: 200px;
background-color: yellow;
border: 2px solid red;
}
</style> -->
<style>
.cls {
width: 300px;
height: 200px;
background-color: pink;
border: 5px solid hotpink;
;
}
</style>
</head> <body>
<input type="button" value="设置样式" id="btn" />
<div id="dv"></div> <script src="common.js"></script>
<script>
my$("btn").onclick = function () {
//在js代码中DOM操作的时候,设置元素的类样式,不用class关键字,应该使用,className
my$("dv").className = "cls";
};
</script>
案例19:点击按钮,通过类样式的方式设置div的显示和隐藏
<head>
<meta charset="UTF-8">
<title>jane自学转行</title>
<style>
div {
width: 300px;
height: 200px;
background-color: pink;
border: 5px solid hotpink;
} .cls {
display: none;
}
</style>
</head> <body>
<input type="button" value="隐藏" id="btn" />
<div id="dv"></div>
<script src="common.js"></script>
<script>
my$("btn").onclick = function () {
// console.log(my$("dv").className);
if (my$("dv").className != "cls") {
//现在是显示的,应该隐藏
my$("dv").className = "cls";
this.value = "显示";
} else {
//隐藏的状态----立刻显示
my$("dv").className = "";
this.value = "隐藏";
}
};
</script>
案例20:网页开关灯
<head>
<meta charset="UTF-8">
<title>jane自学转行</title>
<!-- <style>
.cls {
background-color: black;
}
</style> -->
<style>
.cls {
background-color: black;
}
</style> </head> <body id="bd">
<input type="button" value="开/关灯" id="btn" />
<script src="common.js"></script>
<script>
my$("btn").onclick = function () {
document.body.className = document.body.className != "cls" ? "cls" : "";
};
</script>
JS---DOM---点击操作---part1---20个案例的更多相关文章
- JS---DOM---点击操作---节点的方式---案例
点击操作---节点的方式---案例 案例1:点击按钮,设置p变色---节点的方式做 <!DOCTYPE html> <html lang="en"> < ...
- JS DOM元素的操作(创建,添加,删除,和修改属性)
1.1 创建 DOM 元素以及相应的追加方式 1.1.1 创建:document.createElement('div'); 添加: fatherEle.appendChild(ele); appe ...
- JS DOM之表格操作
一个能给添加行的表格 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ...
- JS Dom节点操作demo!
通过黑马课程的学习,在这里分享一个js Dom中节点操作的小练习 需求:使用js创建一个4*3的表格table. onload = function(){ function c(tagName){ r ...
- JS DOM操作(一) 对页面的操作
DOM ——文档对象模型(Document Object Model)是表示和处理一个HTML或XML文档的常用方法. 在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标 ...
- JS DOM操作(创建、遍历、获取、操作、删除节点)
创建节点 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="u ...
- 前端JavaScript(2) --常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍
昨日内容回顾 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
- 基础DOM和CSS操作(二)
元素样式操作 元素样式操作包括了直接设置CSS样式.增加CSS类别.类别切换.删除类别这几种操作方法.而在整个jQuery使用频率上来看,CSS样式的操作也是极高的,所以需要重点掌握. CSS操作方法 ...
- 10-JavaScript之DOM的事件操作
JavaScript之DOM的事件操作 1.介绍 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等 ...
随机推荐
- [NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has been reached
错误的意思是:已达到可容忍的服务器重连接错误的最大数目.有两个解决思路:一个将这个值设置的更大:然后是排查自己连接服务哪儿出了问题.先说在哪儿设置这个值:在拉取nacos服务的注解配置中,添加一个属性 ...
- luogu P2947 [USACO09MAR]向右看齐Look Up |单调队列
题目描述 Farmer John's N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again stan ...
- APP Distribution Guide 苹果官网
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduct ...
- jQuery中的属性选择器
先看代码,后面详细解释: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- POJ 1325 Machine schedine (二分图-最小点覆盖数=最大匹配边数)
As we all know, machine scheduling is a very classical problem in computer science and has been stud ...
- vs2017/vs2019 去掉 单击aspx文件预览页面
初次安装vs2017或者vs2019,新建的项目中,每次单击项目文件时,文件自动打开了 然后 打开 工具->选项->环境->选项卡和窗口->预览选项卡->勾掉" ...
- python基础入门 字典
字典 字典---->dict 字典是无序的,可变的 关联性强 键值对 键:使用不可变的数据类型(可哈希),键是唯一的 值:可以任意 定义一个字典 dic = {}#定义字典 字典的增删改查 ...
- VMware永久激活密钥
VMware Workstation 14 Pro永久激活密钥 1. ZC3WK-AFXEK-488JP-A7MQX-XL8YF 2. AC5XK-0ZD4H-088HP-9NQZV-ZG2R4 3. ...
- 深入学习socket网络编程,以java语言为例
了解java的socket编程与Linux Socket API之间的关系 一.java的网络编程 1.socket原理 socket通信就是通过IP和端口号将两台主机建立连接,提供通信.主机A的应用 ...
- springcloud-eureka高可用集群搭建
一 前言 eureka作为注册中心,其充当着服务注册与发现功能,加载负载均衡:若在项目运行中eureka挂了,那么整个服务整体都会暂停,所以为服务运行的安全性,有必要搭建eureka集群:当其中一个e ...