DOM例子小结(一)
一、点击按钮切换图片
核心思路:
1、首先获取元素
2、为元素添加点击事件
3、当事件被触发时运行代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button id="dog">狗子</button>
<button id="cat">猫咪</button><br>
<img src="1.jpg" width="150px" height="150px" title="狗子"/>
<script>
//修改元素属性
//获取元素
var dog = document.getElementById("dog");
var cat = document.getElementById("cat");
var img = document.querySelector('img');
//注册事件 处理函数
cat.onclick = function(){
img.title='猫咪';
img.src = '2.jpg';
};
dog.onclick = function(){
img.title='狗子';
img.src = '1.jpg';
}
</script>
</body>
</html>
二、点击变换输入框文字和按钮
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button>按钮</button>
<input type="text" value="输入内容">
<script>
//获取元素
var btn = document.querySelector('button');
var input = document.querySelector('input');
//注册事件 处理程序
btn.onclick = function(){
//input.innerHTML = '点击了~';
//innerHTML这个是普通盒子比如div标签里面的内容
//表单里面的值是通过value属性来实现的
input.value = '点击了~';
//如果想让某个按钮被禁用,不可以再点击,使用disabled,让button被禁用
//btn.disabled = true;
this.disabled = true;
//this指向的是事件函数的调用者,onclick=function这个函数是被btn调用了,所以在这里this指向的就是btn
}
</script>
</body>
</htm>
三、仿京东显示隐藏密码明文
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>仿京东登录框</title>
<style>
.box{
width:300px;
border-bottom:1px solid #f00;
margin:100px auto;
position:relative;
}
.box input{
width:270px;
height:30px;
border: 0;
outline:none;
}
.box img{
position:absolute;
top:10px;
right:10px;
}
</style>
</head>
<body>
<div class="box">
<label for="">
<img src="view_off.png" id="img1" />
</label>
<input type="password" id="input1"></input>
</div>
<script>
//获取元素
var img1 = document.getElementById('img1');
var input1 = document.getElementById('input1');
//注册事件
//遇到一个按钮可以点多次,就使用flag变量去实现
/* var flag = 0;
img1.onclick = function(){
点击一次之后,flag一定要变化
if(flag == 0){
img1.src="view.png";
input1.type='text';
flag = 1;
}else{
img1.src = "view_off.png"
input1.type = 'password';
flag = 0;
}
}*/
img1.onclick = function(){
if(input1.type == 'password'){
img1.src = 'view.png';
input1.type = 'text';
}else{
img1.src="view_off.png";
input1.type='password';
}
}
</script>
</body>
</html>
四、分时问候
核心思路:
1、根据系统不同时间来判断,所以需要用到日期内置对象
2、分为上午、下午、晚上所以利用多分支语句来设置不同的图片
3、需要一个图片,根据时间修改图片,就需要用到操作元素src属性。
4、需要一个div元素,显示不同的问候语,修改元素内容即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
img{
width:150px;
height:150px; }
</style>
</head>
<body>
<img src="3.jpg"/>
<div>猪突猛进</div>
<script>
//1、获取元素
var img = document.querySelector('img');
var div = document.querySelector('div');
///2、得到当时的小时数
var date = new Date();
var h = date.getHours();
//3、判断小时数改变图片和文字信息
if(h<12){
img.src="4.jpg";
div.innerHTML="炭治郎say:上午";
}else if(h<18){
img.src="5.jpg";
div.innerHTML="富冈义勇say:下午";
}else{
img.src="6.jpg";
div.innerHTML="我妻善逸say:晚上";
}
</script>
</body>
</html>
五、密码框验证信息
核心思想
1、首先判断使用的事件是失去焦点 onblur
2、如果输入正确则提示正确的信息,小图标颜色为绿色
3、如果输入不是6~16位,则提示错误信息颜色为红色,小图标变化
4、因为里面需要改变的样式比较多所以采用 className 修改样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>密码框格式提示错误信息</title>
<style>
.box{
width:600px;
margin:100px auto;
}
.massage{
display:inline-block;
font-size: 14px;
color: #999;
background: url(info_filled.png) no-repeat left center;
padding-left: 20px;
}
.wrong{
color:red;
background:url(close_filled.png) no-repeat left center;
}
.right{
color:green;
background:url(check.png) no-repeat left center;
}
</style>
</head>
<body>
<div class="box">
<input type="password" class="inp">
<p class="massage"> 请输入6~16位密码</p>
</div>
<script>
//获取元素
var inp = document.querySelector('.inp');
var aa = document.querySelector('.massage');
//注册事件
inp.onblur = function(){
//根据表单里面值的长度,进行判断
if(this.value.length < 6 || this.value.length > 16){
aa.className = ' massage wrong' ;
aa.innerHTML = ' 输入的密码为位数错误';
}else{
aa.className = 'massage right';
aa.innerHTML = ' 输入格式正确'
}
}
</script>
</body>
</html>
六、排他多按钮点击
如果有同一组元素,如果想要某一个元素实现某种样式,需要用到循环的排他思想
1、先给所有元素清除样式;
2、给当前元素设置样式;
3、注意顺序不能颠倒,首先干掉其他元素,再设置当前元素;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多个按钮的单击事件</title>
</head>
<body>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
</body>
<script>
//获取所有按钮元素
var btns = document.getElementsByTagName('button');
//btns 得到的是伪数组,里面的单独元素是 btn[i]
for(var i=0 ; i < btns.length; i++){
btns[ i ].onclick = function(){
//第一步,先将所有的按钮背景颜色都去掉
for(var i = 0; i < btns.length; i++){
btns[i].style.backgroundColor = '';
}
//第二步,然后才让当前元素的背景颜色改变
thisstyle.backgroundColor = '#aaf';
}
}
</script>
</htm>
DOM例子小结(一)的更多相关文章
- AES加密解密的例子小结
话不多说,先放上代码,一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件),这里只贴出aesDemo.php,其他的看附件吧!aesDemo.php: 例子, ...
- dom例子
//凡是html标签中的属性和值是一样的,那么在js中用true或者false 1,阅读协议倒计时 <input type="button" name="name& ...
- 混淆篇之原生DOM操作方法小结
1.0 DOM结构 1.1先来看结构图: 父节点 兄弟节点 当前节点 属性节点 子节点 兄弟节点一般任意一个节 ...
- JS的Dom树小结
一[DOM树节点] DOM节点分为三大类:元素节点.文本节点.属性节点 文本节点.属性节点,为元素节点的两个子节点: 通过getElement系列方法,可以去到元素节点. 二[查看节点] ...
- 原生DOM操作方法小结
1.0 DOM结构 父节点 兄弟节点 当前节点 属性节点 子节点 兄弟节点 一般任意一个节点我们都会从父节点,子节点,以及兄弟节点的角度去考察.节点一般我们只需关注元素节点,属性节点及文本节点即可 ...
- Javascript基础篇小结
转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器 ...
- 高性能JavaScript笔记一(加载和执行、数据访问、DOM编程)
写在前面 好的书,可能你第一遍并不能领会里面的精魂,当再次细细品评的时候,发现领悟的又是一层新的含义 (这段时间,工作上也不会像从前一样做起来毫不费力,开始有了新的挑战,现在的老大让我既佩服又嫉妒,但 ...
- $.ajax({})方法success,error,complete,beforeSend使用例子及解释
在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据: 回调函数用的比较多的是success,但是complete.beforeSend.error函数也是很有用的: 下面是使用 ...
- JS——BOM、DOM
BOM.DOM BOM window对象 history对象 location对象 screen对象 DOM DOM对HTML元素访问操作 HTML DOM树 DOM 节点 DOM访问HTML元素 D ...
随机推荐
- DJANGO MODEL FORMSETS IN DETAIL AND THEIR ADVANCED USAGE
Similar to the regular formsets, Django also provides model formset that makes it easy to work with ...
- MySQL各种函数/语法
@limit pos,len select * from table limit 5,10 只显示查出结果的6-15行 ---------------------------------------- ...
- 使用fiddler 抓包app 网络连接不上的原因
https://blog.csdn.net/m0_37554415/article/details/80434477· 设置完记得关掉fiddler 重启 基于fiddler 4 windown 10 ...
- [转帖][Linux]systemd和sysV
[Linux]systemd和sysV 转自:https://www.cnblogs.com/EasonJim/p/7168216.html 在Debian8中systemd和sysVinit同时 ...
- Java初始和环境搭建
前世今生 Java语言是什么? 一种计算机编程语言.名字取自咖啡. Java语言发展简史 Java语言之父:James Gosling SUN(Stanford University Network ...
- 遍历dataframe
import pandas as pd import os if __name__ == '__main__': Folder_Path = 'c:\checklog' os.chdir(Folder ...
- CF 1136B Nastya Is Playing Computer Games
题目链接:codeforces.com/problemset/problem/1136/B 题目分析 首先,读完题目,看了是个B题,嗯嗯...... 果断找规律,然后交了一波,居然过了!!! 代码区 ...
- C语言---进制
1. 何为进制 进位机制,逢几进一.数值某一位置上的数在运算时是逢几进一. 生活中的进制:十进制.十二进制(12个月是1年).六十进制(60秒是1分钟) 计算机编程中的进制:二进制.八进制.十六进制. ...
- C#实现Web链接启动应用程序
C#实现Web链接启动应用程序 最近需要配合Web端实现用户点击链接来启动应用程序并且需要能够传参数给应用程序. 那么就可以使用注册表来实现这个功能 编写注册表可以在软件安装程序中加入,也可以在软件启 ...
- python 绘制对象检测框及中文信息标注
# 坐标顺序: 上->左->下->右 def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red ...