B站 尚硅谷JavaWeb教程中前端三件套部分 本人学习笔记

HTML

1:

<html>							表示整个html页面的开始
    <head>						头信息
		<title>标题</title>	   标题
    </head>
    <body>						body是页面的主体内容
        页面主体内容
    </body>
</html>							表示整个html页面的结束

html注释:

2:

1.标签的格式:<标签名>封装的数据</标签名>

2.标签名大小写不敏感

3.标签拥有自己的属性

​ (1)基本属性:bgcolor = “red” 可以修改简单的样式效果

​ (2)事件属性:onclick = “alert(‘你好’)” 可以直接设置事件响应后的代码

<html lang="zh_CN">
<head> 
    <meta charset="UTF-8">
    <title>标题</title>
</head>

<!--bgcolor是背景颜色属性
	onclick表示单击(点击)事件
	
	alert()是JavaScript语言提供的一个警告框函数。
	它可以接收任意参数,参数就是警告框的函数信息
-->
<body bgcolor="red" onclick="alert('你好')"><!--背景颜色改为红色-->
    hello
</body>
</html>

4.标签又分为,单标签和双标签

​ (1)单标签格式:<标签名/>

​ (2)双标签格式:<标签名> </标签名>

标签的语法
1.标签不能交叉嵌套:

​ 正确:

​ 错误: 语法上是错误的,但浏览器会对其进行修复,该错误和正确显示是一样的

2.标签必须正确关闭:

​ 正确:

​ 错误: 语法上是错误的,但浏览器依旧会进行修复

3.单标签:

​ 正确:

​ 错误: 语法上是错误的,但浏览器依旧会进行修复

4.属性必须有值,属性值必须加引号:

​ 正确:

​ 错误: 这种会和正确的一样显示,同理

​ 没有值则会使用默认值,语法上是错的

5.注释不能嵌套

3:

基本标签:
1.标题标签:h1到h6

h1最大,h6最小

align属性是对齐属性,left是左对齐(默认),center(居中),right(右对齐)

<body >  <!--body标签是整个html页面显示的主体内容-->
<h1 align="left">标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>
</body>
2.超链接标题:在网页中所有点击后可以跳转的内容都是超链接
<body >  <!--body标签是整个html页面显示的主体内容-->
<a href="http://www.baidu.com">百度</a>	<!--当前标签页打开-->
<a href="http://www.baidu.com" target="_self">百度</a>	<!--当前标签页打开(默认)-->
<a href="http://www.baidu.com" target="_blank">百度</a>	<!--新标签页打开-->
</body>
3.img标签:显示图片
<body >  <!--body标签是整个html页面显示的主体内容-->
<img src="1.jpg",width="",height="",border="1">	<!-- width,height图片宽度和高度
	border边框属性,1为边框像素-->
</body>

Javase:

​ 相对路径:从工程名开始算

​ 绝对路径:盘符:/目录/文件名

web:

​ 相对路径:. 表示当前文件所在的目录

​ … 表示当前文件所在的上一级目录

​ 文件名 表示当前文件所在目录的文件,相当于 ./文件名 ./ 可以省略

​ 绝对路径: 格式:http://ip:port/工程名/资源路径

4.表格标签
<body >  <!--body标签是整个html页面显示的主体内容-->
    <table border="1" width="300" height="300">
        <tr>
            <th>1.1</th>
            <th>1.2</th>
            <th>1.3</th>
        </tr>
        <tr>
            <td>2.1</td>
            <td>2.2</td>
            <td>2.3</td>
        </tr>
        <tr>
            <td>3.1</td>
            <td>3.2</td>
            <td>4.3</td>
        </tr>
    </table>
</body>

table 表格标签

​ border 设置表格边框 width 设置表格宽度 height 设置表格高度

​ align 设置表格相对于页面的对齐方式 cellspacing 设置单元格间距

tr 行标签

th 表头标签

td 单元格标签

​ align 设置单元格文本对齐方式

b 加粗标签

跨行跨列表格

colspan=“” 属性设置跨列

rowspan=“” 属性设置跨行

ifarme框架标签

ifarme标签它可以在一个html页面上,打开一个小窗口,去加载一个单独的页面

<body >  <!--body标签是整个html页面显示的主体内容-->
    早上好<br/><br/>
<iframe src="1.jpg" width="500" height="500" name="abc"></iframe>
<br/>
<br/>
<ul>
    <li><a href="hello.html" target="abc">百度</a></li>
</ul>
</body>

在当前窗口设置了一个宽度为500,高度为500,窗口名为abc,内容为1.jpg的小窗口

超链接标签中target的对象为iframe设置的小窗口,所以点击超链接后会在小窗口中显示超链接的内容

表单标签(重要)

表单就是html页面中,用来收集用户信息的所有元素集合,然后把这些信息发送给服务器

<body >  <!--body标签是整个html页面显示的主体内容-->
        <!-- form标签就是表单
             input type="text" 是文件输入框   value设置默认显示内容
             input type="password" 是密码输入框   values设置默认显示内容
             input type="radio" 是单选框    name属性可以对其进行分组
             checked="checked"表示默认选项
             input type="checkbox"  是复选框  也能有默认选项 同上
             input type="reset" 是重置按钮   values属性修改按钮上的文本
             input type="submit" 是提交按钮  修改按钮文本同上
             input type="button" 是按钮    修改按钮文本同上
             input type="file"  是文件上传域
             input type="hidden 是隐藏域,当我们要发送某些信息,而这些信息,不需要用户参与
             ,就可以使用隐藏域(提交的时候同时发送给服务器)

             select 标签是下拉列表框
             option 标签是下拉列表框中的选项  selected="selected"设置默认选中

             textarea 表示多行文本输入框(起始标签和结束标签中的内容是默认值)
                rows 属性设置可以显示几行的高度
                cols 属性设置每行可以显示几个字符宽度
         -->
    <form>
        用户名称:<input type="text" value="默认值"/><br/>
        用户密码:<input type="password"><br/>
        性别:<input type="radio" name="sex" checked="checked"/><input type="radio" name="sex"/><br/>
        兴趣爱好:<input type="checkbox"/>Java<input type="checkbox"/>Python<input type="checkbox"/>C++<br/>
        国籍:<select>
                <option>--请选择国籍--</option>
                <option selected="selected">中国</option>
                <option>美国</option>
                <option>俄罗斯</option>
            </select><br/>
        自我评价:<textarea rows="10" cols="20"></textarea><br/>
        <input type="reset"/><br/>
        <input type="submit"/><br/>
        <input type="file"/><br/>
        <input type="hidden"/><br/>
    </form>

</body>



<!-- 使表单格式更规整-->

<form>
    <table align="center">
        <tr>
            <td>用户名称:</td>
            <td><input type="text"/></td>
       </tr>
        <tr>
            <td>用户密码:</td>
            <td><input type="password"/></td>
       </tr>
        <tr>
            <td>性别:</td>
            <td><input type="radio" name="sex" checked="checked"/><input type="radio" name="sex"/></td>        </tr>
        <tr>
            <td>兴趣爱好:</td>
            <td><input type="checkbox"/>Java<input type="checkbox"/>Python<input type="checkbox"/>C++</td>
       </tr>
        <tr>
            <td>国籍:</td><td><select>
                <option>--请选择国籍--</option>
                <option selected="selected">中国</option>
                <option>美国</option>
                <option>俄罗斯</option>
            </select></td>
       </tr>
        <tr>
            <td>自我评价:</td>
            <td><textarea rows="10" cols="20"></textarea></td>
       </tr>
        <tr>
            <td><input type="reset"/></td>
            <td><input type="submit"/></td>
       </tr>
    </table>
</form>


<!--
        form标签是表单标签
            action属性设置提交的服务器地址
            method属性设置提交的方式GET(默认值)或POST

        表单提交的时候,数据没有发送给服务器的三种情况:
            1.表单没有name属性
            2.单选、复选(下拉列表中option标签)都需要条件values属性,便于发送给服务器
            3.表单项不在提交的form标签中

        GET请求的特点是:
            1.浏览器地址栏中的地址是:action属性【+?+请求参数】
                请求参数的格式是:name=value&name=value
            2.不安全(密码会直接被看到)
            3.它有数据长度的限制

        POST请求的特点是:
            1.浏览器地址栏中只有action属性值
            2.相对于GET请求要安全
            3.理论上没有数据长度的限制
        

-->
<form action="http://localhost:8080" method="POST">
    <input type="hidden" name="action" value="login">
    <table align="center">
        <tr>
            <td>用户名称:</td>
            <td><input type="text" name="username"/></td>
        </tr>
        <tr>
            <td>用户密码:</td>
            <td><input type="password" name="password"/></td>
        </tr>
        <tr>
            <td>性别:</td>
            <td><input type="radio" name="sex" checked="checked" value="boy"/><input type="radio" name="sex" value="girl"/></td>
        </tr>
        <tr>
            <td>兴趣爱好:</td>
            <td><input type="checkbox" name="hobby" value="java"/>Java
                <input type="checkbox" name="hobby" value="python"/>Python
                <input type="checkbox" name="hobby" value="cpp"/>C++
            </td>
        </tr>
        <tr>
            <td>国籍:</td><td><select name="country">
                <option value="none">--请选择国籍--</option>
                <option selected="selected" value="China">中国</option>
                <option value="American">美国</option>
                <option value="els">俄罗斯</option>
            </select></td>
        </tr>
        <tr>
            <td>自我评价:</td>
            <td><textarea rows="10" cols="20" name="desc"></textarea></td>
        </tr>
        <tr>
            <td><input type="reset"/></td>
            <td><input type="submit"/></td>
        </tr>
    </table>
</form>



其他标签

div,span,p标签

<body>
    <!-- div标签   默认独占一行
         span标签  它的长度是封装数据的长度
         p段落标签  默认会在段落的上方或下方各空出一行来(如果有则不再空)
    -->

    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
    <p>p标签1</p>
    <p>p标签2</p>
</body>

CSS

css是【层叠样式表单】。是用于(增强)控制网页央视并允许将样式信息与网页内容分离的一种标记性语言。

选择器:

浏览器根据选择器,决定受CSS样式影响的HTML元素(标签)

属性:

你要修改的样式名,并且每个属性都有一个值。属性和值用冒号分开,用大括号包围,这样就组成了一个完整的样式声明,例如(p{color:blue})

多个声明:

如果要定义不止一个声明,则需要用分号将每个声明分开。虽然最后一条声明的最后可以不加分号(但尽量在每条声明的末尾都加上分号)

例如:

p{

color:red;

font-size:30px;

}

一般每行只描述一个属性

CSS注释: /* 注释内容 */

CSS与HTML的结合方式

1:在标签的style属性上设置"key:value value;",修改标签样式。
<body>		<!-- 1像素红色实线边框 -->
    <div style="border: 1px solid red">div标签1</div>
    <div style="border: 1px solid red">div标签2</div>
    <span style="border: 1px solid red">span标签1</span>
    <span style="border: 1px solid red">span标签2</span>
</body>

缺点:1.如果标签多了,样式多了,代码量非常大

​ 2.可读性非常差

​ 3.CSS代码没什么复用性

2:在head标签中,使用style标签来定义各种自己需要的CSS样式

格式:

xxx{

key:value value;

}

style内是CSS代码

该功能实现的和上面一样

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <!-- style标签专门用来定义CSS样式代码 -->
    <style type="text/css">
        div{
            border: 1px solid red;
        }
        span{
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
</body>

缺点:1.只能在统一页面内复用代码,不能在多个页面中复用CSS代码

​ 2.维护起来不方便,实际的项目中会有成千上万的页面,要到每个页面去修改,工作量太大。

3.把CSS样式写成一个单独的CSS文件,再通过link标签引入即可
<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <!-- link标签专门用来引入CSS样式代码 -->
    <link rel="stylesheet" type="text/css" href="css_1.css"/>
</head>
<body>
    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
</body>
div{
    border: 1px solid red;
}
span{
    border: 1px solid red;
}

CSS选择器

1.标签名选择器:

标签名选择器的格式是:

​ 标签名{

​ 属性:值;

​ }

​ 标签名选择器,可以决定哪些标签被动的使用这个样式

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <style type="text/css">
        div{
            color: blue;
            font-size: 30px;
            border: 1px solid yellow;
        }
        span{
            color: yellow;
            font-size: 20px;
            border: 5px dashed blue;
        }
    </style>
</head>
<body>
    <div>div标签1</div>
    <div>div标签2</div>
    <span>span标签1</span>
    <span>span标签2</span>
</body>
2.id选择器

格式是:

#id 属性值{

​ 属性:值

}

id选择器,可以让我们通过id属性选择性的去使用这个样式

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <style type="text/css">
        #id001{
            color: blue;
            font-size: 30px;
            border: 1px solid yellow;
        }
        #id002{
            color: red;
            font-size: 20px;
            border: 5px dotted blue;
        }
    </style>
</head>
<body>
    <div id="id001">div标签1</div>
    <div id="id002">div标签2</div>
</body>

id唯一,class不唯一

3.class选择器(类选择器)

格式:

​ .class 属性值{

​ 属性:值;

​ }

class类型选择器,可以通过class属性有效的选择去使用这个样式。

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <style type="text/css">
        .class001{
            color: blue;
            font-size: 30px;
            border: 1px solid yellow;
        }
        .class002{
            color: grey;
            font-size: 26px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div class="class001">div标签1</div>
    <div class="class002">div标签2</div>
    <span class="class002">span标签1</span>
</body>
4.组合选择器

格式:

​ 选择器1,选择器2,选择器n{

​ 属性:值;

​ }

组合选择器可以让多个选择器公用同一个CSS样式代码

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <style type="text/css">
        .class001,#id001{
            color: blue;
            font-size: 20px;
            border: 1px solid yellow;
        }
    </style>
</head>
<body>
    <div class="class001">div标签1</div>
    <span id="id001">span标签1</span>
</body>
5.常用样式

1.字体颜色 2.宽度

3.高度 4.背景颜色

5.div居中 6.超链接去下划线

7.表格细线 8.列表去除修饰

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <style type="text/css">
        div{
            color: red;
            font-size: 20px;
            border: 1px solid yellow;
            width: 300px;
            height: 300px;
            background-color: green;
            margin-left: auto;
            margin-right: auto;
            text-align: center;
        }
        a{
            text-decoration: none;
        }
        table{
            border: 1px red solid;
            border-collapse: collapse;
        }
        td{
            border: 1px red solid;
        }
        ul{
            list-style: none;
        }
    </style>
</head>
<body>
<ul>
    <li>11</li>
    <li>22</li>
    <li>33</li>
    <li>44</li>
</ul>

<table>
    <tr>
        <td>1.1</td>
        <td>1.2</td>
    </tr>
</table>

<a href="http://www.baidu.com">百度</a>
<div>div标签1</div>
</body>

JavaScript

介绍:

JavaScript语言诞生主要是完成页面的数据验证,因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码

JS是弱类型,JAVA是强类型

弱类型就是类型可变

强类型,就是定义变量的时候,类型已确定,而且不可变

特点:

1.交互性(它可以做的就是信息的动态交互)

2.安全性(不允许直接访问本地磁盘)

3.跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关)

JavaScript和HTML代码结合

1

只需要在head标签中,或者在body标签中,使用script标签来书写JavaScript代码

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <script type="text/javascript">
        //alert()是JavaScript语言提供的一个警告框函数
        //它可以接收任意类型的参数,这个参数就是警告框的提示信息
        alert("hello javascript");
    </script>
</head>
<body>

</body>
2

使用script标签引入,单独的JavaScript代码文件(复用)

<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <!--
        使用script引入外部的js文件来执行
        src属性专门用来引入js文件路径(相对和绝对都行)
        script标签可以用来定义js代码,也可以引入js文件
        但是,两个功能二选一使用,不能同时使用两个功能
    -->
    <script type="text/javascript" src="js_1.js">

    </script>
</head>
alert("hello javascript");

变量

变量是可以存放某些值的内存的命名

JavaScript的变量类型:

数值类型: number

字符串类型: string

对象类型: object

布尔类型: boolean

函数类型: function

JavaScript里特殊的值:

​ undefined 未定义,所有js变量未赋予初始值的时候,默认值都是undefined

​ null 空值

​ NAN 全称是:not a number。非数字,非数值。

js中的定义变量格式:

​ var 变量名;

​ var 变量名 = 值;

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    var i;
    alert(i);
    i = 12;
    // typeof是js语言提供的一个函数
    // 它可以取变量的数据类型返回
    alert(typeof (i));

    i="abc"
    alert(typeof (i));

    var a = 12;
    var b = "abc";
    alert(a*b);// 结果会是NAN,非数字,非数值。
</script>
</head>

关系(比较)运算

等于: == 等于是简单的做字面值的比较

全等于: === 除了做字面值的比较之外,还会比较两个变量的数据类型

其余与java一样

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    var a = "12";
    var b = 12;
    alert(a==b);    //true
    alert(a===b);   //false
</script>
</head>

逻辑运算

在JavaScript语言中,所有的变量都可以作为一个Boolean类型的变量去使用

0,null,undefined,“”(空串)都认为是false;

&&且运算:有两种情况

一:当表达式全为真的时候,返回最后一个表达式的值

二:当表达式中,有一个为假的时候,返回第一个为假的表达式的值

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    var a = "abc";
    var b = true;
    var c = false;
    var d = null;
    alert( a && b );//"abc"
    alert( b && a );//true

    alert( a && d );//null
    alert( a && c );//false;

    alert( a && c && d);//false
</script>
</head>

||或运算:有两种情况

一:当表达式全为假时,返回最后一个表达式的值

二:只要有一个表达式为真,就会返回第一个为真的表达式的值

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    var a = "abc";
    var b = true;
    var c = false;
    var d = null;
    alert(a || b ); //"abc"
    alert(d || c );  //false
    alert(c || b ); //true
</script>
</head>

数组(重点)

js中数组的定义:

​ var 数组名 = []; //空数组

​ var 数组名 = [1,‘abc’,true]; //定义数组同时赋值元素

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    var arr = [];   //定义一个空数组
    alert(arr.length);  //0

    arr [0] = 12;
    alert(arr[0]);  //12
    alert(arr.length);  //1

    //JavaScript语言中的数组,只要我们通过数组下标复制,那么最大的下标值
    //就会自动的给数组做扩容操作
    arr[2] = "abc";
    alert(arr[2]);  //abc
    alert(arr.length);  //3
    alert(arr[1]);  //undefined
    //数组遍历
    for(var i =0;i<arr.length;i++){ //注意用var
        alert(arr[i]);
    }
</script>
</head>

函数(重点)

有两种定义方式:

1.使用function关键字来定义函数。

​ 格式:

​ function 函数名(形参列表){

​ 函数体

​ }

传入参数不用定义类型

​ JavaScript语言中,定义一个有返回值的函数,只需要在函数体内直接使用return语句返回值即可(不用表明返回什么类型)

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //定义一个无参函数
    function fun() {
        alert("无参函数调用");
    }
    fun();//调用函数
    //定义一个有参函数
    function fun1(a,b){
        alert("有参函数调用"+a+"和"+b);
    }
    fun1(12,"abc");
    //带有返回值的函数
    function fun2(a,b) {
        var result = a+b;
        return result;
    }
    alert(fun2(100,20));//120
</script>
</head>
2.

格式:

var 函数名 = function(形参列表){函数体}

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
var fun = function () {
    alert("无参函数");
}
fun();

var fun1 = function (a,b) {
    alert("有参函数\na="+a+"\nb="+b);
}
fun1(123,'asd');

var fun2 = function (a,b) {
    var result = a+b;
    return result;
}
alert(fun2(100,200));

</script>
</head>
3.注:

在java中函数允许重载,但在JS中函数的重载会直接覆盖掉上一次的定义

<script type="text/javascript">
function fun() {
alert("无参函数fun()")
}

function fun(a,b) {
alert("有参函数fun(a,b)");
}
fun();//显示:有参函数fun(a,b)
</script>
<script type="text/javascript">
    function fun(a,b) {
        alert("有参函数fun(a,b)");
    }
    function fun() {
        alert("无参函数fun()")
    }
    fun();//显示:无参函数fun()
</script>
函数的arguments 隐形参数(只在function函数内)

在function函数中不需要定义,,但却可以直接用来获取所有参数的变量,我们把它叫做隐形参数。(看不见但可以用)

隐形参数特别像java基础的可变长参数一样。

public void fun(object…args);

可变长参数其实是一个数组,那么JS中的隐形参数也跟java的可变长参数一样,操作类似数组。

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    function fun() {
        alert(arguments);//arguments相当于一个数组
        alert(arguments.length);//参数个数
        alert(arguments[0]);    //1
        alert(arguments[1]);    //abc
        alert("无参函数");
    }
    fun(1,"abc");


    //要求 计算所有参数相加的和并返回
    function sum(num1,num2) {
        var result = 0;
        for(var i = 0; i < arguments.length; i++){
            result += arguments[i];
        }
        return result;
    }
    alert(sum(1,2,3,4,2,1,));   //13


</script>
</head>

JS中的自定义对象

1.object形式的自定义对象

​ 对象的定义:

​ var 变量名 = new Object(); //对象实例(空对象)

​ 变量名.属性名 = 值; //定义一个属性

​ 变量名.函数行 = function(){} //定义一个函数

​ 对象的访问:

​ 变量名.属性/函数名();

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //定义
    var obj = new Object();
    obj.name = "李华";
    obj.age = "18";
    obj.fun = function () {
        alert("姓名:"+this.name+"年龄:"+this.age)
    }

    //访问
    alert(obj.age); //18
    obj.fun();  //姓名:李华年龄:18
</script>
</head>
2.{}花括号形式得自定义对象

定义:

​ var 变量名 = { //空对象

​ 属性名: 值, //定义一个属性

​ 属性名: 值, //定义一个属性

​ 函数名: function(){} //定义一个函数

​ };

访问:

​ 变量名.属性/函数名();

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //定义对象
    var obj = {
        name:"李华",
        age:18,
        fun:function () {
            alert("姓名:"+this.name+"\n年龄:"+this.age);
        }
    };

    //访问
    alert(obj.name);    //李华
    obj.fun();      //姓名:李华(\n)年龄:18
    alert(typeof (obj));    //object

</script>
</head>

JS中的事件

事件是电脑输入设备与页面进行交互的相应,我们称之为事件。

常用的事件:

onload 加载完成事件: 页面加载完成之后,常用于做页面js代码初始化操作

onclick 单击事件: 常用于按钮的点击响应操作

onblur 失去焦点事件: 常用于输入框失去焦点后验证其输入内容是否合法

onchange 内容发生改变的事件: 常用于下拉列表和输入框内容发生改变后操作

onsubmit 表单提交事件: 常用于表单提交前,验证所有表单是否合法

事件的注册:(静态和动态)

什么是事件的注册(绑定)?

告诉浏览器,当事件响应后要执行哪些操作代码,叫事件的注册或事件的绑定

静态注册:

通过html标签的事件属性直接赋予事件响应后的代码,这种方式叫做静态注册

动态注册:

先通过js代码得到标签的dom对象,然后再通过dom对象.事件名 = function(){}这种形式赋予事件响应后的代码,叫动态注册

​ 动态注册基本步骤:

​ 1.获取标签对象

​ 2.标签对象.事件名 = function(){}

onload事件
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //onload事件的方法
    function onloadFun() {
        alert('静态注册onload事件')
    }

    //onload事件动态注册,是固定写法
    window.onload = function () {
        alert('动态注册onload事件')
    }
</script>
</head>
<!-- 静态注册
        onload事件是浏览器解析完页面之后就会自动触发的事件
-->
<body onload="onloadFun()">	<!--动态注册时不用加后面的部分-->

</body>
onclick事件
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //静态
    function onclickFun() {
        alert("静态注册onclick事件");
    }

    //动态
    window.onclick = function () {
        //1.获取标签对象
        //document时JavaScript语言提供的一个对象(文档)
        /*get               获取
        * Element           元素(就是标签)
        * By                通过。。
        * Id                id属性
        * 通过id属性获取标签对象
        * */
        var btnobj = document.getElementById("bt001");
        alert(btnobj);
        //2.通过标签对象.事件名 = function(){}
        btnobj.onclick = function () {
            alert("动态注册onclick事件");
        }
    }
</script>
</head>

<body>
    <!--静态注册-->
    <button onclick="onclickFun()">按钮1</button>
    <!--动态注册-->
    <button id = "bt001">按钮2</button>
</body>
onblur事件
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //静态注册
    function onblurFun() {
        //console时控制台对象,是由JavaScript语言提供,专门用来向浏览器的控制台打印输出,用于测试使用
        //log()是打印的方法
        console.log("静态注册失去焦点事件");
    }

    //动态注册
    window.onblur = function () {
        //1.获取标签对象
        var password = document.getElementById("psd001");
        // alert(password);
        //2.通过标签对象.事件名= function(){}
        password.onblur = function () {
            console.log("动态注册失去焦点事件")
        }
    }

</script>
</head>

<body>
    <!--静态注册-->
    用户名:<input type="text" onblur="onblurFun()"><br/>
    <!--动态注册-->
    密码:<input type="password" id="psd001"><br/>

</body>
onchange事件
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //静态注册
    function onchangeFun() {
        alert("选择成功!(静态)");
    }

    //动态注册
    window.onchange = function () {

        //1.获取标签对象
        var selobj = document.getElementById("sel001");
        //2.通过标签对象.事件名= function(){}
        selobj.onchange = function () {
            alert("选择成功!(动态)")
        }
    }

</script>
</head>

<body>
    <!--静态注册-->
    兴趣1:
    <select onchange="onchangeFun()">
        <option>--爱好--</option>
        <option>唱歌</option>
        <option>跳舞</option>
        <option>打篮球</option>
    </select>
    <br/>
    <br/>
    <br/>
    <!--动态注册-->
    兴趣2:
    <select id="sel001">
        <option>--爱好--</option>
        <option>唱歌</option>
        <option>跳舞</option>
        <option>打篮球</option>
    </select>
</body>
onsubmit事件
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    //静态注册
    function onsubmitFun() {
        alert("静态注册表单提交事件------发现不合法");
        return false;
    }
    //动态注册
    window.onload = function () {
        //1.获取标签对象
        var formobj = document.getElementById("form001");
        //2.通过标签对象.事件名= function(){}
        formobj.onsubmit = function () {
            alert("动态注册表单提交事件-----发现不合法");
            return false;
        }
    }
</script>
</head>

<body>

    <!--return false可以阻止表单提交-->
<form action="http://localhost:8080" method="get" onsubmit="return onsubmitFun()">
    <input type="submit" value="静态注册">
</form>
    <br/>
    <br/>

    <!--动态注册-->
    <form id="form001" action="http://localhost:8080">
        <input type="submit" value="动态注册">
    </form>

</body>

DOM模型

dom全称是document object model文档对象模型

就是把文档中的标签,属性,文本,转换成为对象来管理

1.document对象概念(重点)

理解:1.document它管理了所有的HTML文档内容

​ 2.document它是一种树结构的文档,有层级关系

​ 3.它让我们把所有的标签都对象化

​ 4.我们可以通过document访问所有的标签对象

2.验证用户名是否有效
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">

    function onclickFun() {
        //获取标签对象
        var usernameobj = document.getElementById("username");
        // alert(usernameobj);// [object HTMLInputElement] 它就是dom对象
        var usernameText = usernameobj.value;//value即输入框中输入的内容
        //正则表达式:字母,数字,下划线组成,长度5到12位
        var patt = /^\w{5,12}$/

        /*
        * test()方法用于测试某个字符串,是不是匹配我的规则
        * 匹配成功就返回true,失败就放回false
        * */

        if(patt.test(usernameText)){
            alert("用户名合法!")
        }else{
            alert("用户名不合法!")
        }
    }

</script>
</head>
<body>
    用户名:<input type="text" id="username" value=""/>
    <button onclick="onclickFun()">提交</button>
</body>
正则表达式

正则表达式是描述字符模式的对象

正则表达式用于字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具

<script type="text/javascript">
    //表示要求字符串中,是否包含字母e
    var patt = new RegExp("e");
    var patt = /e/;
    //表示要求字符串中,是否包含字母a或b或c
    var patt = /[abc]/;
    //表示要求字符串中,是否包含小写字母
    var patt = /[a-z]/;
    //表示要求字符串中,是否包含任意大写字母
    var patt = /[A-Z]/;
    //表示要求字符串中,是否包含任意数字
    var patt = /[0-9]/;
    //表示要求字符串中,是否包含字母,数字,下划线
    var patt = /\w/;
    //表示要求字符串中,是否至少包含一个a
    var patt = /a+/;
    //表示要求字符转中,是否包含零个或多个a
    var patt = /a*/;
    //表示要求字符串中,是否包含一个或零个a
    var patt = /a?/;
    //表示要求字符串中,是否包含连续三个a
    var patt = /a{3}/;
    //表示要求字符串中,是否包含至少3个连续的a,最多包含5个连续的a
    //当有三个连续的a时就会返回true,即使3个连续的a后面会出现多余5个连续的a
    var patt = /a{3,5}/;
    //表示要求字符串中,至少包含3个连续的a
    var patt = /a{3,}/;
    //表示要求字符串中,必须以a结尾
    var patt = /a$/;
    //表示要求字符串中,必须以a开始
    var patt = /^a/;


    //要求字符串,从头到位都必须匹配
    //字符串必须严格符合至少3个连续的a,最多5个连续的a
    var patt = /^a{3,5}$/;

</script>
验证提示效果
<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    function onclickFun() {
        var usernameobj = document.getElementById("username");
        var usernametext = usernameobj.value;
        var patt = /^\w{5,12}$/;
        var userspanobj = document.getElementById("usernameSpan");
		//innerHTML	表示起始标签和结束标签中的内容
        //innerHTML	这个属性可读,可写
        if(patt.test(usernametext)){
            userspanobj.innerHTML="用户名合法!";
        }else{
            userspanobj.innerHTML="用户名不合法!";
        }
    }
</script>
</head>
<body>
    用户名:<input type="text" id="username" value=""/>
    <span id="usernameSpan" style="color: red";></span>
    <button onclick="onclickFun()">提交</button>
</body>
<script type="text/javascript">
    if(patt.test(usernametext)){	<--在innerHTML后加图片路径-->
        userspanobj.innerHTML="";	<-- <img src=""   >-->
    }else{
        userspanobj.innerHTML="";
    }
    </script>
getElementsByName

document.getElementsByName();是根据指定的name属性查询返回多个标签对象集合

这个集合的操作和数组一样

集合中每个元素都是dom对象

这个集合中的元素顺序是他们在html页面中从上到下的顺序

checked表示复选框的选中状态,如果选中是true,不选中是false

checked这个属性可读,可写,所以可以修改状态

<head>
    <meta charset="UTF-8">
    <title>标题</title>
<script type="text/javascript">
    function onclickFun() {
        var habbies = document.getElementsByName("hobby");
        for(var i = 0;i<habbies.length;i++){
            habbies[i].checked=true;
        }
    }
    function onclickFun1() {
        var habbies = document.getElementsByName("hobby");
        for(var i = 0;i<habbies.length;i++){
            habbies[i].checked=false;
        }
    }
    function onclickFun2() {
        var habbies = document.getElementsByName("hobby");
        for(var i = 0;i<habbies.length;i++){
            habbies[i].checked = !habbies[i].checked;
        }
    }
</script>
</head>
<body>
    兴趣:
    <input type="checkbox" name="hobby" value="java">java
    <input type="checkbox" name="hobby" value="cpp">c++
    <input type="checkbox" name="hobby" value="javascript">javascript
    <br/>
    <button onclick="onclickFun()">全选</button>
    <button onclick="onclickFun1()">全不选</button>
    <button onclick="onclickFun2()">反选</button>
</body>
注:

document对象的三个查询方法,如果有id属性,优先使用getElementById方法来进行查询

如果没有id属性,则优先使用getElementByName方法来进行查询

如果id属性和name属性都没有,最后再按标签名查getElementByTagName

以上三个方法,一定要再页面加载完成之后执行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值