04 HTML CSS JavaScript

文章目录

  • HTML
    • 1、HTML介绍
    • 2、快速入门
    • 3、基础标签
    • 4、图片、音频、视频标签
    • 5、超链接标签
    • 6、列表标签
    • 7、表格标签
    • 8、布局标签
    • 9、 表单标签
  • CSS
    • 1、 概述
    • 2、 css 导入方式
    • 3、 css 选择器
    • 4、 css 属性
  • JavaScript
    • 1、JavaScript简介
    • 2、JavaScript引入方式
    • 3、JavaScript基础语法
    • 4、JavaScript常用对象
    • 5、BOM
    • 6、DOM
    • 7、事件监听
    • 8、表单验证案例
    • 9、RegExp对象

HTML

1、HTML介绍

  1. HTML(HyperText Markup Language):超文本标记语言
    • 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容
    • 标记语言:由标签构成的语言
      HTML中的标签都是预定义好的,运行在浏览器上并由浏览器解析
  2. W3C标准:
    W3C是万维网联盟,这个组成是用来定义标准的。他们规定了一个网页是由三部分组成,分别是:
    • 结构:对应的是 HTML 语言
    • 表现:对应的是 CSS 语言
    • 行为:对应的是 JavaScript 语言
      HTML定义页面的整体结构;CSS是用来美化页面,让页面看起来更加美观;JavaScript可以使网页动起来,比如轮播图也就是多张图片自动的进行切换等效果

2、快速入门

  1. 需求:实现如图页面

  2. 实现步骤

    • 新建文本文件,后缀名改为 .html
    • 编写 HTML 结构标签
      <html><head><title> </title></head><body></body>
      </html>
      
      (1)html标签是根标签,head 标签和 body 标签这两个子标签
      (2)head 标签的 title 子标签是用来定义页面标题名称的,它定义的内容会展示在浏览器的标题位置
      (3)body 标签的内容会被展示在内容区中
    • 定义文字
      <html><head>	<title>html 快速入门</title></head><body>乾坤未定,你我皆是黑马~<font color='red'>乾坤未定,你我皆是牛马!!!</font></body>
      </html>
      
  3. 细节

    • HTML 文件以.htm或.html为扩展名

    • HTML 结构标签

    • HTML 标签不区分大小写

    • HTML 标签属性值 单双引皆可

    • HTML 语法松散

3、基础标签

<!-- html5 标识-->
<!DOCTYPE html>
<html lang="en">
<head><!-- 页面的字符集--><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>我是标题 h1</h1>
<h2>我是标题 h2</h2>
<h3>我是标题 h3</h3>
<h4>我是标题 h4</h4>
<h5>我是标题 h5</h5>
<h6>我是标题 h6</h6><hr>
<!--html 表示颜色:1. 英文单词:red,pink,blue...2. rgb(值1,值2,值3):值的取值范围:0~255  rgb(255,0,0)3. #值1值2值3:值的范围:00~FF
-->
<font face="楷体" size="5" color="#ff0000">传智教育</font><hr>
刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……<br><hr>
<p>
刚察草原绿草如茵,沙柳河水流淌入湖。藏族牧民索南才让家中,茶几上摆着馓子、麻花和水果,炉子上刚煮开的奶茶香气四溢……
</p>
<p>
6月8日下午
</p><hr>
沙柳河水流淌<br>
<b>沙柳河水流淌</b><br>
<i>沙柳河水流淌</i><br>
<u>沙柳河水流淌</u><br><hr>
<center>
<b>沙柳河水流淌</b>
</center></body>
</html>

转移字符:

4、图片、音频、视频标签

  • 图片、音频、视频标签

    • img:定义图片
      src:规定显示图像的 URL(统一资源定位符)
      height:定义图像的高度
      width:定义图像的宽度
    • audio:定义音频。支持的音频格式:MP3、WAV、OGG
      src:规定音频的 URL
      controls:显示播放控件
    • video:定义视频。支持的音频格式:MP4, WebM、OGG
      src:规定视频的 URL
      controls:显示播放控件
  • 尺寸单位:
    height属性和width属性有两种设置方式:

    • 像素:单位是px
    • 百分比。占父标签的百分比
      例如,宽度设置为 50%,意思就是占它的父标签宽度的一般(50%)
  • 资源路径:
    资源路径有如下两种设置方式:

    • 绝对路径:完整路径
      这里的绝对路径是网络中的绝对路径。 格式为: 协议://ip地址:端口号/资源名称
      如:
      <img src="https://th.bing.com/th/id/R33674725d9ae34f86e3835ae30b20afe?
      rik=Pb3C9e5%2b%2b3a9Vw&riu=http%3a%2f%2fwww.desktx.com%2fd%2ffile%2fwallpaper%2fscenery%2f2
      0180626%2f4c8157d07c14a30fd76f9bc110b1314e.jpg&ehk=9tpmnrrRNi0eBGq3CnhwvuU8PPmKuy1Yma0zL%2b
      a14T0%3d&risl=&pid=ImgRaw" width="300" height="400">
      
    • 相对路径:相对位置关系
      根据.html所在位置通过相对位置关系来寻找资源
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><img src="../img/a.jpg" width="300" height="400">
<img src="https://th.bing.com/th/id/R33674725d9ae34f86e3835ae30b20afe?rik=Pb3C9e5%2b%2b3a9Vw&riu=http%3a%2f%2fwww.desktx.com%2fd%2ffile%2fwallpaper%2fscenery%2f20180626%2f4c8157d07c14a30fd76f9bc110b1314e.jpg&ehk=9tpmnrrRNi0eBGq3CnhwvuU8PPmKuy1Yma0zL%2ba14T0%3d&risl=&pid=ImgRaw" width="300" height="400">
<audio src="b.mp3" controls></audio>
<video src="c.mp4" controls width="500" height="300"></video></body>
</html>

5、超链接标签

  • 超链接标签:a 标签
    • href:指定访问资源的URL
    • target:指定打开资源的方式
      • _self:默认值,在当前页面打开
      • _blank:在空白页面打开
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="https://www.itcast.cn" target="_self">点我有惊喜</a>
</body>
</html>

6、列表标签

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><ol type="A"><li>咖啡</li><li></li><li>牛奶</li></ol><ul type="circle"><li>咖啡</li><li></li><li>牛奶</li></ul>
</body>
</html>

效果:

7、表格标签

  • table :定义表格

    • border:规定表格边框的宽度
    • width :规定表格的宽度
    • cellspacing:规定单元格之间的空白
  • tr :定义行
    align:定义表格行的内容对齐方式

  • th:定义表头单元格

  • td :定义单元格

    • rowspan:规定单元格可横跨的行数
    • colspan:规定单元格可横跨的列数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"><title>Title</title>
</head>
<body>
<table border="1" cellspacing="0" width="500"><tr><th>序号</th><th>品牌logo</th><th>品牌名称</th><th>企业名称</th></tr><tr align="center"><td>010</td><td><img src="../img/三只松鼠.png" width="60" height="50"></td><td>三只松鼠</td><td>三只松鼠</td></tr><tr align="center"><td>009</td><td><img src="../img/优衣库.png" width="60" height="50"></td><td>优衣库</td><td>优衣库</td></tr><tr align="center"><td>008</td><td><img src="../img/小米.png" width="60" height="50"></td><td>小米</td><td>小米科技有限公司</td></tr>
</table>
</body>
</html>

8、布局标签


这两个标签,一般都是和css结合到一块使用来实现页面的布局。
div 标签 在浏览器上会有换行的效果,而 span 标签在浏览器上没有换行效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div>我是div</div><div>我是div</div><span>我是span</span><span>我是span</span>
</body>
</html>

效果:

9、 表单标签

  • 介绍
    表单:在网页中主要负责数据采集功能
    表单项(元素):不同类型的 input 元素、下拉列表、文本域等

  • form标签
    form 是表单标签,它在页面上没有任何展示的效果,需要借助于表单项标签来展示不同的效果

    • action:规定当提交表单时向何处发送表单数据,该属性值就是URL
    • method :规定用于发送表单数据的方式
      • get:默认值。如果不设置method属性则默认就是该值
        (1)请求参数会拼接在URL后边
        (2)url的长度有限制 4KB
      • post:
        (1)浏览器会将数据放到http请求消息体中
        (2)请求参数无限制的
  • 表单项标签

    • input:表单项,通过type属性控制输入形式

    • select:定义下拉列表,option 定义列表项

    • textarea:文本域
      可以输入多行文本,而 input 数据框只能输入一行文本

    (1) 以上标签项的内容要想提交,必须得定义 name 属性。
    (2)每一个标签都有id属性,id属性值是唯一的标识。
    (3)单选框、复选框、下拉列表需要使用 value 属性指定提交的值

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><form action="#" method="post"><input type="hidden" name="id" value="123"><label for="username">用户名:</label><input type="text" name="username" id="username"><br><label for="password">密码:</label><input type="password" name="password" id="password"><br>性别:<input type="radio" name="gender" value="1" id="male"> <label for="male"></label><input type="radio" name="gender" value="2" id="female"> <label for="female"></label><br>爱好:<input type="checkbox" name="hobby" value="1"> 旅游<input type="checkbox" name="hobby" value="2"> 电影<input type="checkbox" name="hobby" value="3"> 游戏 <br>头像:<input type="file"><br>城市:<select name="city"><option>北京</option><option value="shanghai">上海</option><option>广州</option></select><br>个人描述:<textarea cols="20" rows="5" name="desc"></textarea><br><br><input type="submit" value="免费注册"><input type="reset" value="重置"><input type="button" value="一个按钮"></form>
</body>
</html>

CSS

1、 概述

Cascading Style Sheet(层叠样式表):用于控制网页表现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{color: red;}</style>
</head>
<body>
<div>Hello CSS~</div>
</body>
</html>

2、 css 导入方式

css 导入方式就是 css 代码和 html 代码的结合方式,CSS 导入 HTML有三种方式

  • 内联样式:在标签内部使用style属性,属性值是css属性键值对
    只能作用在这一个标签上,复用性太差

    <div style="color: red">Hello CSS~</div>
    
  • 内部样式:定义style标签,在标签内部定义css样式
    可以做到在该页面中复用

    <style type="text/css">div{color: red;}
    </style>
    
  • 外部样式:定义link标签,引入外部的css文件
    可以在多个页面进行复用

    div{color: red;
    }
    
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>span{color: red;}</style><link href="../css/demo.css" rel="stylesheet">
</head>
<body><div style="color: red">hello css</div><span>hello css </span><p>hello css</p>
</body>
</html>

demo.css:

p{color: red;
}

3、 css 选择器

(1)css 选择器就是选取需设置样式的元素(标签)
(2)常用三种选择器:

  • 元素选择器:元素名称{color: red;}
  • id选择器:#id属性值{color: red;}
  • 类选择器:.class属性值{color: red;}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{color: red;}#name{color: blue;}.cls{color: pink;}</style></head>
<body><div>div1</div><div id="name">div2</div><div class="cls">div3</div><span class="cls">span</span>
</body>
</html>

4、 css 属性

需要时去官网https://www.w3school.com.cn/css/index.asp查看即可

JavaScript

1、JavaScript简介

(1) JavaScript 是一门跨平台面向对象脚本语言
(2)JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行
(3)JavaScript 是用来控制网页行为的,它能使网页可交互

2、JavaScript引入方式

JavaScript 引入方式就是 HTML 和 JavaScript 的结合方式。JavaScript引入方式有两种:

  • 内部脚本:将 JS代码定义在HTML页面中
    在 HTML 中,JavaScript 代码必须位于 <script></script> 标签之间

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body>
    <script>alert("hello js1");
    </script>
    </body>
    </html>
    

    (1)在 HTML 文档中可以在任意地方,放置任意数量的标签
    (2)一般把脚本置于 元素的底部,可改善显示速度

  • 外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中
    在页面使用 script 标签中使用 src 属性指定 js 文件的 URL 路径

    //demo.js 文件内容
    alert("hello js");
    
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body>
    <script src="../js/demo.js"></script>
    </body>
    </html>
    

    (1)外部脚本不能包含 <script> 标签
    在js文件中直接写 js 代码即可,不要在 js文件 中写 script 标签
    (2)<script> 标签不能自闭合
    在页面中引入外部js文件时,不能写成 <script src="../js/demo.js" />

3、JavaScript基础语法

  1. 书写语法

    • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
    • 每行结尾的分号可有可无
      如果一行上写多个语句时,必须加分号用来区分多个语句。
    • 注释
      • 单行注释:// 注释内容
      • 多行注释:/* 注释内容 */
        注意:JavaScript 没有文档注释
    • 大括号表示代码块
  2. 输出语句

    • 使用 window.alert() 写入警告框
    • 使用 document.write() 写入 HTML 输出
    • 使用 console.log() 写入浏览器控制台
      按 F12 就可以看到控制台
  3. 变量

    • JavaScript 是一门弱类型语言,变量可以存放不同类型的值
      (1)JavaScript 中用 var 关键字(variable 的缩写)来声明变量
      (2)格式: var 变量名 = 数据值;
      var test = 20;
      test = "张三";
      
    • 变量名命名规则
      和java语言基本都相同
      • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
      • 数字不能开头
      • 建议使用驼峰命名
    • var 关键字
      • 作用域:全局变量
      • 变量可以重复定义
    • let 关键字
      • 代码块内有效
      • 不允许重复声明
    • const关键字
      • 声明一个只读的常量
      • 一旦声明,常量的值就不能改变
  4. 数据类型

    • 两类数据类型:原始类型 和 引用类型
      使用 typeof 运算符可以获取数据类型:typeof 变量名
    • 原始数据类型:
      • number:数字(整数、小数、NaN(Not a Number))
      • string:字符、字符串,单双引皆可
      • boolean:布尔
      • null:对象为空
      • undefined:当声明的变量未初始化时,该变量的默认值是 undefined
  5. 运算符

    • JavaScript 提供了如下的运算符
      大部分和 Java语言 都是一样的

    • =====区别

      • ==:1. 判断类型是否一样,如果不一样,则进行类型转换,2. 再去比较其值
      • ===:1. 判断类型是否一样,如果不一样,直接返回false,2. 再去比较其值
    • 类型转换

      • 其他类型转为number
        • string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN
          //将 string 转换为 number 有两种方式:
          //(1)使用 + 正号运算符:
          var str = +"20";
          alert(str + 1) //21
          //(2)使用 parseInt() 函数(方法):
          var str = "20";
          alert(parseInt(str) + 1);
          
        • boolean 转换为 number 类型:true 转为1,false转为0
          var flag = +false;
          alert(flag); // 0
          
      • 其他类型转为boolean
        • number 类型转换为 boolean 类型:0和NaN转为false,其他的数字转为true
        • string 类型转换为 boolean 类型:空字符串转为false,其他的字符串转为true
        • null类型转换为 boolean 类型是 false
        • undefined 转换为 boolean 类型是 false
      • 使用场景:
        由于 JavaScript 会自动进行类型转换,所以可以简化判断字符串不是null
        var str = "abc";
        //健壮性判断
        //if(str != null && str.length > 0){
        if(str){alert("转为true");
        }else {alert("转为false");
        }
        
  6. 流程控制语句
    JavaScript 中提供了和 Java 一样的流程控制语句,如下

    • if
    • switch
    • for
    • while
    • dowhile
  7. 函数

    • 定义格式
      JavaScript 函数通过 function 关键词进行定义,定义格式有两种

      • 方式1
        function 函数名(参数1,参数2..){要执行的代码
        }
        
      • 方式二
        var 函数名 = function (参数列表){要执行的代码
        }
        
      • 细节
        (1)形式参数不需要类型。因为JavaScript是弱类型语言
        (2)返回值也不需要定义类型,可以在函数内部直接使用return返回即可
    • 函数调用

      • 函数调用格式:函数名称(实际参数列表);
      • 细节:JS中,函数调用可以传递任意个数参数,多的不接收,少了设空

4、JavaScript常用对象

  1. Array对象
    JavaScript Array对象用于定义数组

    • 定义格式

      • 方式1:var 变量名 = new Array(元素列表);
      • 方式2:var 变量名 = [元素列表];
    • 元素访问:arr[索引] = 值; 索引从0开始

    • 特点
      (1)JavaScript 中的数组相当于 Java 中集合。
      (2)数组的长度是可以变化的
      (3)可以存储任意的类型的数据

    • 属性

    • 方法

      • push 函数:给数组添加元素,也就是在数组的末尾添加元素
        参数表示要添加的元素
      • splice 函数:删除元素
        参数1:索引。表示从哪个索引位置删除
        参数2:个数。表示删除几个元素
     // 方式一
    var arr = new Array(1,2,3);// 方式二
    var arr2 = [1,2,3];// 访问
    arr2[0] = 10;
    alert(arr2)//属性length
    for (let i = 0; i < arr.length; i++) {alert(arr[i]);
    }// push:添加方法
    var arr5 = [1,2,3];
    arr5.push(10);
    alert(arr5);  //数组的元素是 {1,2,3,10}// splice:删除元素
    var arr5 = [1,2,3];
    arr5.splice(0,1); //从 0 索引位置开始删除,删除一个元素 
    alert(arr5); // {2,3}
    
  2. String对象

    • 定义
      • 方式1:var 变量名 = new String(s);
      • 方式2:var 变量名 = “数组”;
    • 属性
      length ,该属性是用于动态的获取字符串的长度
    • 函数

      trim():去掉字符串两端的空格
    var str4 = ' abc   ';
    alert(1 + str4.trim() + 1);
    
  3. 自定义对象

    • 定义

      var 对象名称 = {属性名称1:属性值1,属性名称2:属性值2,...,函数名称:function (形参列表){},...
      };
      
    • 调用

      对象名.属性名
      对象名.函数名()
      
    var person = {name : "zhangsan",age : 23,eat: function (){alert("干饭~");}};
    alert(person.name);  //zhangsan
    alert(person.age); //23
    person.eat();  //干饭~
    

5、BOM

  • BOM介绍
    • BOM:Browser Object Model 浏览器对象模型
    • JavaScript 将浏览器的各个组成部分封装为对象
    • 通过操作 BOM 中的对象可以实现操作浏览器的各个组成部分
    • BOM 中包含了如下对象:
      • Window:浏览器窗口对象
      • Navigator:浏览器对象
      • Screen:屏幕对象
      • History:历史记录对象
      • Location:地址栏对象
  1. Window对象

    • 获取window对象
      • 该对象不需要创建直接使用 window ,其中 window. 可以省略
      • 显式使用 window 对象调用:window.alert(“abc”);
      • 隐式调用:alert(“abc”)
    • window对象属性
      window 对象提供了用于获取其他 BOM 组成对象的属性

      (1)想使用 Location 对象的话,就可以使用 window 对象获取,写成 window.location
      (2)window. 可以省略,简化写成 location 来获取 Location 对象
    • window对象函数
      常用的函数
    • 案例
      需求:每隔1秒,灯泡切换一次状态
      <!DOCTYPE html>
      <html lang="en">
      <head><meta charset="UTF-8"><title>JavaScript演示</title>
      </head>
      <body>
      <input type="button" onclick="on()" value="开灯">
      <img id="myImage" border="0" src="../imgs/off.gif" style="text-align:center;">
      <input type="button" onclick="off()" value="关灯">
      <script>function on(){document.getElementById('myImage').src='../imgs/on.gif';}function off(){document.getElementById('myImage').src='../imgs/off.gif'}//定义一个变量,用来记录灯的状态,偶数是开灯状态,奇数是关灯状态var x = 0;//使用循环定时器setInterval(function (){if(x % 2 == 0){//表示是偶数,开灯状态,调用 on() 函数on();}else {  //表示是奇数,关灯状态,调用 off() 函数off();}x ++;//改变变量的值},1000);
      </script>
      </body>
      </html>
      
  2. History对象
    (1)使用 window.history获取,其中window. 可以省略
    (2)常用方法:

  3. Location对象
    (1)使用 window.location获取,其中window. 可以省略
    (2)常用属性:

6、DOM

  1. 概述

    • DOM:Document Object Model 文档对象模型

    • JavaScript 将 HTML 文档的各个组成部分封装为对象

    • 封装的对象分为

      • Document:整个文档对象
      • Element:元素对象
      • Attribute:属性对象
      • Text:文本对象
      • Comment:注释对象
    • 如下图,左边是 HTML 文档内容,右边是 DOM 树

    • 作用:JavaScript 通过 DOM, 就能够对 HTML进行操作了

      • 改变 HTML 元素的内容
      • 改变 HTML 元素的样式(CSS)
      • 对 HTML DOM 事件作出反应
      • 添加和删除 HTML 元素
    • DOM相关概念:
      DOM 是 W3C(万维网联盟)定义了访问 HTML 和 XML 文档的标准。
      该标准被分为 3 个不同的部分:
      (1)核心 DOM:针对任何结构化文档的标准模型。 XML 和 HTML 通用的标准
      (2) XML DOM: 针对 XML 文档的标准模型
      (3)HTML DOM: 针对 HTML 文档的标准模型

    • HTML DOM
      该标准是在核心 DOM 基础上,对 HTML 中的每个标签都封装成了不同的对象
      例如:<img>标签在浏览器加载到内存中时会被封装成 Image 对象,同时该对象也是 Element 对象;<input type='button'> 标签在浏览器加载到内存中时会被封装成 Button 对象,同时该对象也是Element 对象。

  2. 获取 Element对象

    • HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取
    • Document 对象中提供了以下获取 Element 元素对象的函数
      • getElementById() :根据id属性值获取,返回单个Element对象
      • getElementsByTagName() :根据标签名称获取,返回Element对象数组
      • getElementsByName() :根据name属性值获取,返回Element对象数组
      • getElementsByClassName() :根据class属性值获取,返回Element对象数组
    //1.  getElementById() :根据id属性值获取,返回单个Element对象
    var img = document.getElementById("light");
    alert(img);//2. getElementsByTagName() :根据标签名称获取,返回Element对象数组
    var divs = document.getElementsByTagName("div");
    for (let i = 0; i < divs.length; i++) {alert(divs[i]);
    }//3. getElementsByName:根据name属性值获取,返回Element对象数组
    var hobbys = document.getElementsByName("hobby");
    for (let i = 0; i < hobbys.length; i++) {alert(hobbys[i]);
    }//4. getElementsByClassName:根据class属性值获取,返回Element对象数组
    var clss = document.getElementsByClassName("cls");
    for (let i = 0; i < clss.length; i++) {alert(clss[i]);
    }
    
  3. HTML Element对象使用
    HTML 中的 Element 元素对象有很多,不可能全部记住,根据具体的需求查阅文档使用
    案例演示:

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><img id="light" src="../imgs/off.gif"> <br><div class="cls">传智教育</div>   <br><div class="cls">黑马程序员</div> <br><input type="checkbox" name="hobby"> 电影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戏<br><script>//在此处写js低吗</script>
    </body>
    </html>
    
    • 需求1:点亮灯泡

      • 此案例由于需要改变 img 标签 的图片,所以我们查询文档,下图是查看文档的流程:

      • 代码实现:
        //1,根据 id='light' 获取 img 元素对象
        var img = document.getElementById("light");
        //2,修改 img 对象的 src 属性来改变图片
        img.src = "../imgs/on.gif";
        
    • 需求2:将所有的 div 标签的标签体内容替换为 呵呵

      //1,获取所有的 div 元素对象
      var divs = document.getElementsByTagName("div");
      /*style:设置元素css样式innerHTML:设置元素内容*/
      //2,遍历数组,获取到每一个 div 元素对象,并修改元素内容
      for (let i = 0; i < divs.length; i++) {//divs[i].style.color = 'red';divs[i].innerHTML = "呵呵";
      }
      
    • 需求3: 使所有的复选框呈现被选中的状态

      //1,获取所有的 复选框 元素对象
      var hobbys = document.getElementsByName("hobby");
      //2,遍历数组,通过将 复选框 元素对象的 checked 属性值设置为 true 来改变复选框的选中状态
      for (let i = 0; i < hobbys.length; i++) {hobbys[i].checked = true;
      }
      

7、事件监听

(1)HTML 事件是发生在 HTML 元素上的“事情”
(2)事件监听是JavaScript 可以在事件被侦测到时执行一段逻辑代码

  1. 事件绑定
    JavaScript 提供了两种事件绑定方式:

    • 方式一:通过 HTML标签中的事件属性进行绑定
    • 方式二:通过 DOM 元素属性绑定
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><!--方式1:在下面input标签上添加 onclick 属性,并绑定 on() 函数--><input type="button" value="点我" onclick="on()"> <br><input type="button" value="再点我" id="btn"><script>function on(){alert("我被点了");}//方式2:获取 id="btn" 元素对象,通过调用 onclick 属性 绑定点击事件document.getElementById("btn").onclick = function (){alert("我被点了");}</script>
    </body>
    </html>
    
  2. 常见事件

8、表单验证案例

  1. 需求

    1、当输入框失去焦点时,验证输入内容是否符合要求
    2、当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交

  2. 环境准备

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>欢迎注册</title><link href="../css/register.css" rel="stylesheet">
    </head>
    <body><div class="form-div"><div class="reg-content"><h1>欢迎注册</h1><span>已有帐号?</span> <a href="#">登录</a></div><form id="reg-form" action="#" method="get"><table><tr><td>用户名</td><td class="inputs"><input name="username" type="text" id="username"><br><span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span></td></tr><tr><td>密码</td><td class="inputs"><input name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密码格式有误</span></td></tr><tr><td>手机号</td><td class="inputs"><input name="tel" type="text" id="tel"><br><span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span></td></tr></table><div class="buttons"><input value="注 册" type="submit" id="reg_btn"></div><br class="clear"></form></div><script></script>
    </body>
    </html>
    
  3. 验证输入框
    此小节完成如下功能:
    (1)校验用户名。当用户名输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使id=‘username_err’ 的span标签显示出来,给出用户提示。
    (2)校验密码。当密码输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使id='password_err’的span标签显示出来,给出用户提示。
    (3)校验手机号。当手机号输入框失去焦点时,判断输入的内容是否符合 长度是 11 位 规则,不符合使 id=‘tel_err’ 的span标签显示出来,给出用户提示。

    //1. 验证用户名是否符合规则
    //1.1 获取用户名的输入框
    var usernameInput = document.getElementById("username");
    //1.2 绑定onblur事件 失去焦点
    usernameInput.onblur = function () {//1.3 获取用户输入的用户名var username = usernameInput.value.trim();//1.4 判断用户名是否符合规则:长度 6~12if (username.length >= 6 && username.length <= 12) {//符合规则document.getElementById("username_err").style.display = 'none';} else {//不合符规则document.getElementById("username_err").style.display = '';}
    }
    //2. 验证密码是否符合规则
    //2.1 获取密码的输入框
    var passwordInput = document.getElementById("password");
    //2.2 绑定onblur事件 失去焦点
    passwordInput.onblur = function() {//2.3 获取用户输入的密码var password = passwordInput.value.trim();//2.4 判断密码是否符合规则:长度 6~12if (password.length >= 6 && password.length <= 12) {//符合规则document.getElementById("password_err").style.display = 'none';} else {//不合符规则document.getElementById("password_err").style.display = '';}
    }
    //3. 验证手机号是否符合规则
    //3.1 获取手机号的输入框
    var telInput = document.getElementById("tel");
    //3.2 绑定onblur事件 失去焦点
    telInput.onblur = function() {//3.3 获取用户输入的手机号var tel = telInput.value.trim();//3.4 判断手机号是否符合规则:长度 11if (tel.length == 11) {//符合规则document.getElementById("tel_err").style.display = 'none';} else {//不合符规则document.getElementById("tel_err").style.display = '';}
    }
    
  4. 验证表单
    当用户点击 注册 按钮时,需要同时对输入的 用户名 、 密码 、 手机号 ,如果都符合规则,则提交表单;如果有一个不符合规则,则不允许提交表单。实现该功能需要获取表单元素对象,并绑定 onsubmit 事件

    //1. 获取表单对象
    var regForm = document.getElementById("reg-form");
    //2. 绑定onsubmit 事件
    regForm.onsubmit = function () {//挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回falsevar flag = checkUsername() && checkPassword() && checkTel();return flag;
    }//1. 验证用户名是否符合规则
    //1.1 获取用户名的输入框
    var usernameInput = document.getElementById("username");
    //1.2 绑定onblur事件 失去焦点
    usernameInput.onblur = checkUsername;
    function checkUsername() {//1.3 获取用户输入的用户名var username = usernameInput.value.trim();//1.4 判断用户名是否符合规则:长度 6~12var flag = username.length >= 6 && username.length <= 12;if (flag) {//符合规则document.getElementById("username_err").style.display = 'none';} else {//不合符规则document.getElementById("username_err").style.display = '';}return flag;
    }
    //1. 验证密码是否符合规则
    //1.1 获取密码的输入框
    var passwordInput = document.getElementById("password");
    //1.2 绑定onblur事件 失去焦点
    passwordInput.onblur = checkPassword;
    function checkPassword() {//1.3 获取用户输入的密码var password = passwordInput.value.trim();//1.4 判断密码是否符合规则:长度 6~12var flag = password.length >= 6 && password.length <= 12;if (flag) {//符合规则document.getElementById("password_err").style.display = 'none';} else {//不合符规则document.getElementById("password_err").style.display = '';}return flag;
    }
    //1. 验证手机号是否符合规则
    //1.1 获取手机号的输入框
    var telInput = document.getElementById("tel");
    //1.2 绑定onblur事件 失去焦点
    telInput.onblur = checkTel;
    function checkTel() {//1.3 获取用户输入的手机号var tel = telInput.value.trim();//1.4 判断手机号是否符合规则:长度 11var flag = tel.length == 11;if (flag) {//符合规则document.getElementById("tel_err").style.display = 'none';} else {//不合符规则document.getElementById("tel_err").style.display = '';}return flag;
    }
    

9、RegExp对象

  1. RegExp简介
    (1)RegExp 是正则对象
    (2)正则对象用于判断指定字符串是否符合规则
    (3)正则表达式是和语言无关的
    (4)正则表达式在不同的语言中的使用方式不同
    (5)js 中需要使用正则对象来使用正则表达式

  2. 正则对象使用

    • 创建对象
      正则对象有两种创建方式:
      • 直接量方式:var reg = /正则表达式/; 注意不要加引号,
      • 创建 RegExp 对象:var reg = new RegExp(“正则表达式”);
    • 函数
      test(str) :判断指定字符串是否符合规则,返回 true或 false
  3. 正则表达式

    • 常用的规则
      • ^:表示开始
      • $:表示结束
      • [ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符
      • .:代表任意单个字符,除了换行和行结束符
      • \w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]
      • \d:代表数字字符: 相当于 [0-9]
    • 量词:
      • +:至少一个
      • *:零个或多个
      • ?:零个或一个
      • {x}:x个
      • {m,}:至少m个
      • {m,n}:至少m个,最多n个
    // 规则:单词字符,6~12
    //1,创建正则对象,对正则表达式进行封装
    var reg = /^\w{6,12}$/;
    var str = "abcccc";
    //2,判断 str 字符串是否符合 reg 封装的正则表达式的规则
    var flag = reg.test(str);
    alert(flag);
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Potree在web端显示大型点云模型文件

一、克隆项目代码&#xff08;准备好上网工具&#xff0c;得先有node.js npm 环境&#xff09; git clone https://github.com/potree/potree.git二、依赖安装&#xff08;换淘宝镜像能快一些&#xff09; cd potree npm install三、运行 npm start四、使用样例 打开浏览器…

【Spring】SpringRetry重试机制和Spring异步任务发送操作结合应用场景实操,通俗易懂

平时调用一些第三方接口或者内部接口&#xff0c;可能出现处理异常或者超时或者意外因素&#xff0c;我们可以使用重试机制来为用户提高体验。 1.引用依赖 <dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</a…

单片机学习(18)--红外遥控器

红外遥控器 17.1红外遥控的基础知识1.红外遥控简介2.硬件电路3.基本发送和接收4.NEC编码5.遥控器键码6.51单片机的外部中断7.外部中断寄存器 17.2红外遥控的程序代码1.红外遥控&#xff08;1&#xff09;工程目录&#xff08;2&#xff09;main.c函数&#xff08;3&#xff09;…

vue 实战 tab标签页+el-card+流式布局+异步接口调用

<template><div><!-- 布局按钮 --><el-button click"dialogVisible true">布局配置查看</el-button><!-- 布局配置对话框 --><el-dialog :visible.sync"dialogVisible" title"布局配置查看" width"…

Invalid bound statement (not found)

Invalid bound statement (not found) 首先申明的是这个错误一般是使用mybatis方法没有找到或者参数不匹配等原因造成的&#xff01; 原本项目是使用eclipse运行&#xff0c;导入到idea之后&#xff0c;项目启动就报错 …Invalid bound statement (not found)… 解决办法&#…

Python 爬虫(爬取百度翻译的数据)

前言 要保证爬虫的合法性&#xff0c;可以从以下几个方面着手&#xff1a; 遵守网站的使用条款和服务协议&#xff1a;在爬取数据之前&#xff0c;仔细阅读目标网站的相关规定。许多网站会在其 robots.txt 文件中明确说明哪些部分可以爬取&#xff0c;哪些不可以。 例如&…

中电金信:AI数据服务

01 方案简介 AI数据服务解决方案为泛娱乐、电子商务、交通出行等行业提供数据处理、数据分析、AI模型训练等服务&#xff0c;通过自主研发的IDSC自动化数据服务平台与客户业务流程无缝衔接&#xff0c;实现超低延时的实时数据处理支持。 02 应用场景 智能医疗&#xff1a; 通…

深入浅出mediasoup—通信框架

libuv 是一个跨平台的异步事件驱动库&#xff0c;用于构建高性能和可扩展的网络应用程序。mediasoup 基于 libuv 构建了包括管道、信号和 socket 在内的一整套通信框架&#xff0c;具有单线程、事件驱动和异步的典型特征&#xff0c;是构建高性能 WebRTC 流媒体服务器的重要基础…

《javaEE篇》--单例模式详解

目录 单例模式 饿汉模式 懒汉模式 懒汉模式(优化) 指令重排序 总结 单例模式 单例模式属于一种设计模式&#xff0c;设计模式就好比是一种固定代码套路类似于棋谱&#xff0c;是由前人总结并且记录下来我们可以直接使用的代码设计思路。 单例模式就是&#xff0c;在有…

升级python版本

参考 https://blog.51cto.com/u_15579956/10397535 python3 main.py

聚焦保险行业客户经营现状,概述神策数据 CJO 解决方案

触点红利时代&#xff0c;企业的经营需求从「深度的用户行为分析」转变为「个性化、全渠道一致的客户体验」。客户旅程编排&#xff08;Customer Journey Orchestration&#xff0c;简称 CJO&#xff09;从体验出发&#xff0c;关注客户需求、感受和满意度&#xff0c;能够帮助…

HarmonyOS Next系列之地图组件(Map Kit)使用(九)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

「运费速查神器」精明买家必备!一键查询1688供应商发货费用

对于从事跨境买家还是国内电商买家&#xff0c;在选品时&#xff0c;需要全面考虑商品成本&#xff0c;发货费用是供应链成本的重要组成部分。 原来如果我们在1688选品看供应商发货运费&#xff0c;需要一个个单独点击到商品的详情页去查看&#xff0c;再选择具体的收货地、再…

Elastic:监控不同于可观察性的 3 个原因

作者&#xff1a;来自 Elastic Observability Team 监控和可观察性经常互换使用&#xff0c;但它们并不完全相同。监控是可观察性的重要组成部分&#xff0c;但可观察性远远超出了传统监控实践的范围。 关键区别&#xff1a;监控从各个组件收集数据 —— 何时和什么&#xff0…

微信小程序-CANVAS写入图片素材、文字等数据生成图片

微信小程序中&#xff0c;CANVAS写入图片素材、文字等数据生成图片&#xff0c;最终可将生成的 base64 格式图片保存至相册操作 Tips&#xff1a; 1、canvas 标签默认宽度 300px、高度 150px canvas 生成图片时&#xff0c;写入图片素材、文字等数据前&#xff0c;需要根据实…

叶再豪降龙精英课程总结

文章目录 1.思维认知1.1 稻盛和夫成功公式1.2 龙头主升模式1.3 龙头主升-两种路径1.4 股市新手的炒股思路1.5 龙头案例1.6 降龙心法 2.情绪周期2.1 情绪周期2.1 情绪演绎周期2.2 情绪的四个部分2.2.1 指数的情绪周期2.2.3 热点情绪周期2.2.4 热点情绪演绎周期2.2.5 大热点支线2…

深入了解路由器工作原理:从零开始的简单讲解

简介 在现代网络中&#xff0c;路由器扮演着至关重要的角色。它不仅连接了不同的设备&#xff0c;还确保数据能够准确地传输到目的地。本文将带你深入探讨路由器的工作原理&#xff0c;帮助网络基础小白们理解这一重要设备的基本功能。 路由器的构成 路由器是一种具有多个输入…

纷享AI | AI技术在销售场景的应用与实践

AI高速发展的今天&#xff0c;各行业都经历着深刻变革。但机遇与挑战总相伴相生&#xff0c;各企业负责人事实上也正面临着如何有效利用AI以完成赋能销售业务的难题。 毋庸置疑&#xff0c;跟上技术潮流&#xff0c;通过落实AI在销售场景中的应用进而取得卓越赋能成果必然是行…

Android TabLayout的简单用法

TabLayout 注意这里添加tab&#xff0c;使用binding.tabLayout.newTab()进行创建 private fun initTabs() {val tab binding.tabLayout.newTab()tab.text "模板库"binding.tabLayout.addTab(tab)binding.tabLayout.addOnTabSelectedListener(object : TabLayout.On…

深度学习系列一

激活函数 sigmod 梯度消失问题&#xff1a; sigmoid函数的导数在输入值较大或较小时接近于0。在反向传播过程中&#xff0c;这些小梯度会相乘&#xff0c;导致深层网络的梯度变得非常小。结果是&#xff0c;深层网络的参数几乎不会更新&#xff0c;训练变得非常困难。这就是为…