目录
1、概述
JavaScript(简称JS)是一种具有函数优先级的轻量级,解释性或即时编译型的编程语言。
解释性语言:程序本身不会立即编译,只有在程序运行的时候进行编译。
JavaScript虽然作为开发Web页面的脚本语言而出名,但它也会被用于很多非浏览器的环境中,JavaScript基于原型编译、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
1.1 JavaScript(Script脚本)
它也是一门弱类型脚本语言,其源代码在发往客户端之前不需要翻译,而是将文本格式的字符代码发给浏览器由浏览器解释运行。
2、JS入门基础
2.1 注释介绍
// 单行注释 :注释单行代码。
/* 多行注释 */:注释多行代码。
// 单行注释
/*
这里注释了
多行代码
*/
2.2 引入JavaScript
1,内部标签
在标题title下创建script(script是成对出现的不可忽略,打出单词script+Tab键一键生成)
在script中写入alert('hello,world')创建自己的第一个JavaScript程序。
<title>Title</title>
<script>
alert('hello,world');
</script>
2,外部引用script
在同一个目录下,创建一个js目录,在js目录中创建第一个qj.js文件,通过script中的src引入js文件。(/)代表当前目录的下一级。
<script src = "js/qj.js"></script>
3,默认的type
不用显示定义type,也默认就是。
<script type="text/javascript"></script>
2.3 基础语法
1,浏览器必备调试须知:
在浏览器中按Ctrl+Shift+C打开调试
2,var :定义变量
alert:进行弹窗操作,alert里面的值都会通过弹窗,显现给我们看。
console.log:在浏览器的控制台打印变量(供我们敲代码的人阅读程序信息)
// 注意:javaScript严格区分大小写
// 比如:var a = 1,与 var A = 1,是两个变量
<script>
// 1,定义变量 变量类型 变量名 = 变量值
var score =70;
// alert(num); 作用于在条件控制语句符合时,弹窗显示出相应的内容
// 2,条件控制语句
if(score>60&& score<70){
alert("60~70")
}else if (score>70&& score<80){
alert("70~80")
}
else {
alert("other")
}
// 在浏览器的控制台输入console.log(score),打印变量.
</script>
2.3 数据类型
网页中有的东西都可以是数据:比如数值,文本,图形...
而数据的表达形式可以分为很多类型,比如var数字类型,字符串类型,布尔值类型。
因为在JavaScript不区分小数和整数,所以都用Number表示。
1,定义变量
var:变量
NaN:全称not a number 表示这不是一个数字。
Infinity:表示无限大。
( ' ' ) ( " " ):字符串的符号有两个,写在符号中间的就是字符串。
布尔值:返回真假 true为真,false为假。
&&,||,!逻辑运算符:真返回结果为true,假返回结果为false。
==:等于(判断结果,类型不一样,值一样,也会被判断为true)。
===:绝对等于(类型一样,值一样,结果才会为true)。
浮点数问题:在程序运算时,可能会存在精度的问题. 比如:console.log((1/3) === (1-2/3)) 结果:false。
var // 变量
NaN // 全称not a number 表示这不是一个数字. NaN还与所有的数值都不相等,包括自己
Infinity // 表示无限大
'abc' "abc" // 字符串的符号有两个('')("")
true false // 布尔值:返回真假 true为真,false为假
&& // 两个都为真,结果为真
|| // 其中有一个为真,结果为真 ---逻辑运算,真为true,假为false---
! // 取反,若是为真,返回假,若是假返回真
=
== // 等于 (类型不一样,值一样,也会被判断为true) --比较运算符--
=== // 绝对等于(类型一样,值一样,结果才会为true)所以在JavaScript中尽量都使用===(3个等于号来比较值)
// 浮点数问题:在程序运算时,可能会存在精度的问题. 比如:console.log((1/3) === (1-2/3)) 结果:false
2,数组
数组,常常用来定义一组数字,也可以是一组字符串。
undefined:代表此刻的值未定义。
// 保证数组的可读性,尽量用[]
var num = [1,4,21,41,'41',"44"]
alert(num)
3,对象
对象:万物皆对象。
对象在JavaScript中,用大括号{ }表示:在对象中创建的属性,都以 , 逗号结尾,而最后一个属性可以不用逗号结尾。
数组用 [ ] 中括号表示:
var arr = {
name:"zhangsan", // 对象中的属性
age:18,
tags:['js','java',1] // 对象中的数组
} // 取值在控制台里面,对象名加 . 对象名获取值 比如:arr.name获取对象name的名字
2.4 严格检查模式 'use strict'
'use strict' 严格检查模式,预防js的随意性导致产生的一些问题。所以必须写在js的第一行。
<script>
'use strict'
let i = 1;
...
</script>
3、数据类型
局部变量:就是在使用范围内才有意义的。
全局变量:是在整个类中都有意义的。
<script>
// 局部变量都建议使用let 去定义,比较规范
// 全局变量
let i = 1;
</script>
3.1 字符串
1,正常字符串用 ' ' , " " 包裹。
2,注意转义字符。
转义字符参考:JavaScript 字符串 (w3school.com.cn)
3,多行字符串的编写
定义一个变量,变量内可以写多个换行字符串。
// Tap上面那个键是多行字符编写 ``符号内就可以写多个换字符串
var a =`asd
weq
qwe
asd
`
4,模板字符串 ${ } 表示
${ }可以把变量插入到另一个变量中。
let a ='abc';
let b = "as";
let msg = `你好,${a}`// 用${a}把let a的值替换到字符串中
5,获取字符串长度
let a = 'abc'; // 这个提取到的字符串总数就是3个
a.length; // 提出字符串的总数,用数字表示
6,大小写转换方法
src.toUpperCase(); // 将里面的字符串字母转换为大写
src.toLowerCase(); // 将里面的字符串字母转换为小写
scr.substring(1.2) // 截取1和2区间的字符串
3.2 数组
重点:增删改查
Array数组可以包含任何的数据类型。
(1)push:增加元素到尾部。 pop:弹出尾部的元素。
(2)unshift:增加元素到头部。 shift:弹出头部的元素。
(3)sort:排序。
(4)reverse:反转所有元素。
(5)concat:拼接后返回一个新数组。
(6)join( ' -' )打印字符,用特定的 - 符号拼接。
(7)indexOf:通过元素获得下标索引。
(8)slice() 截取数组的一部分,返回新的数组,类似于String中的substring。
3.3 对象
1,若干个键值对。
var person = { // 对象都包括下面的属性
name:"zhangsan",
age:20,
sex:'男'
}
js中{...}表示一个对象,对象表示方法xxx:xxxxx加以逗号隔开,最后一个不用逗号。
2,动态的删减性,通过delete删除对象的属性。
delete person.name // 通过delete删除person对象中的name元素
3,动态的添加,直接给新的属性添加值就可以了。
person.abc="abc" // 直接添加abc字符串
4,判断属性值是否在这个对象中、、结果返回true 和 false。
"age" in person // 通过in来判断person对象中是否有字符abc的存在,并返回true和false
5,判断这个属性是否是这个对象本身拥有hasOwnProperty()、、结果返回true 和 false。
person.hasOwnProperty("tostring"); // 判断person对象中是否本身拥有tostring字符串,并返回true和false
3.4 流程控制
- if判断语句
- while循环语句
- for循环语句
- forEach循环语句
// 通过forEach循环打印出arr数组的值
var arr = [11, 22, 33, 44, 55, 66];
arr.forEach(function (value) {
console.log(value);
})
1,for..of 循环打印出所有的值。
var a = [1,2,45] // 数组
for (var x of a){ // 循环打印
console.log(x)
}
2,for..in 循环打印出索引位置。
var arr = [11, 22, 33, 44, 55, 566]; // 通过for..in循环打印出数组中存在的值
for (var num in arr) {
if (arr.hasOwnProperty(num));
console.log("存在");
console.log(arr[num]);
}
3.5 Map和Set
1,Map(元素拥有可重复性)
map.set(); 设值一个新的值到尾部。
map.get(); 获取其中的属性。
map.add(); 增加元素。
map.delete(); 删除元素。
var map = new Map([['jion', 100], ['Ailes', 80], ['zhangsan', 60]]);
map.set('lisi', 123312);// 设置一个新的值
var name = map.get('lisi');// 获取lisi的属性
console.log(name)// 控制台打印name的属性
map.add(); // 增加元素
map.delete(); // 删除元素
2,Set (元素无序性,不可重复性)
set.add(); 增加元素。
set.delete(); 删除元素。
var set = new Set([3,1,1,1,1])
// 结果为[3,1] 因为set是无序不重复的
set.add(); // 增加元素
set.delete(); // 删除元素
console.log(set.has());// 查找元素中是否包含这个值,返回结果true和false
3.6 iterator(迭代)
利用for..of循环便利数组 、便利Map、便利Set。
数组遍历:
var a = [1, 2, 3, 4];
for (let c of a) { // 使用of便利出数组的所有值
console.log(c);
}
Map便利:
var map = new Map([["a", 123],["b", 456], ["c", 789]]);
for (let xc of map) { // 使用of便利出map的所有值
console.log(xc);
}
Set便利:
var set = new Set([1, 2, 3, 4, 5]);
for (let x of set) { // 使用of便利出sat的所有值
console.log(x);
}
4,函数
函数的定义:在JavaScript中函数是一段可以被执行或调用任意次数的JavaScript代码,在数据类型中属于"function"。函数也拥有属性和方法,因此函数也可以是对象。
4.1 定义一个函数
在JavaScript中我们用function来定义函数,函数内部有方法和属性。
1,绝对值函数
(定义一)函数
<script>
function sun(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
</script>
一旦碰到return就代表函数结束,返回结果!若是没有return函数执行完就返回undefined。
(定义二)匿名函数
function(x){.....} 这是一个匿名函数,可以把函数赋值给abc,通过abc来调用函数。
<script>
var abc = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
</script>
2,如果我们在使用函数的时候定义的参数不是数字,就会出现Not a Number错误,这时候就需要我们手动抛出异常。
<script>
var abc = function (x) {
// 手动抛出异常
if (typeof x !== 'number') {
throw 'Not a Number'
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
</script>
3,Rest就是为解决传入的参数数量不一定,而出来的。
rest用法: rest参数必须写在最后面,用...标识。
<script>
function abc(a,b,...rest){ // rest参数必须写在最后面,用...标识
console.log("a=>"+a);
console.log("b=>"+b);
console.log(rest)
}
</script>
4.2 变量的作用域
1,JavaScript里面var是有定义域的 (闭包可以实现)
x假如在函数内定义了,则在函数体外不可使用。
<script>
function abv() {
var x = 1;
var x = x + 1;
}
x = x +2; // 该X不在定义域内所以会产生错误,Uncaught ReferenceError: x is not defined 第一个异常
</script>
2,window
默认所有的全局变量,都会自动绑定在window对象下:
var x = 'xxx';
alert(x); // alert本身也是绑定在window下
alert(window.x);
由于我们所有的全局变量都会绑定到我们的window上,如果不同的js文件,使用了相同的全局变量。就会冲突。
如何减少冲突?
解决方法:把自己的代码都放在自己定义的唯一空间中,降低全局命名冲突的问题。
// 唯一的全局变量
var sum = {};
// 定义全局变量
sum.name = 'zhangsan';
sum.add = function(a,b){
return a + b ;
}
4.3 局部作用域
<script>
function aaa() {
for (var i = 0; i < 100; i++) {
console.log(i);
}
console.log(i + 1);// 不该产生的问题:i出了这个作用域还可以使用 结果为101,如何避免?
}
</script>
ES6解决全局作用域冲突问题:
<script>
function aaa() {
for (let i = 0; i < 100; i++) { // 更换成了let(建议)
console.log(i);
}
console.log(i + 1);// 这时候就会显示出Uncaught ReferenceError: i is not defined异常
}
</script>
4.4 常量const
const:只读常量,不可以更改,更改了常量就会报错。
const PI ='3.14'; // const只读变量
console.log(PI);
PI = 'adsa'; // 因为const只能读不能设值或更改,所以就会出现Uncaught TypeError: Assignment to constant variable.异常
console.log(PI);
4.5 方法
方法就是把函数放在对象的里面,对象只有两个东西,属性和方法。
<script>
var zhangsan={ // 对象名
name:'lisi', // 属性:给对象赋值
bitrh:2001, // 出生年
// 方法
age:function(){ // 方法:使用方法来给age设值
// 今年——出生的年
var now = new Date ().getFullYear(); // get...代表今年
return now - this.bitrh; // this是无法指向的,但它默认指向调用它的那个对象。
}
}
</script>
// zhangsan.name 调用属性
// zhangsan.age() 调用方法一定要带括号
(1)this是无法指向的,但它默认指向调用它的那个对象。
那如何解决指向问题?
(2)apply:在js中可以控制this的指向。
getAge.apply(zhangsan,[]); // apply直接指向了zhangsan这个对象
注意点:apply控制指向的时候只能调用方法去指向,不能调用属性去指向。
5,内部对象
5.1 Date(基本转换)
转换成时间的代码。
<script>
var now = new Date(); // 打印now 显示当前的时间
now.getFullYear();// 年
now.getMonth();// 月
now.getDate();// 日
now.getDay();// 星期
now.getHours();// 时
now.getMinutes();// 分
now.getSeconds();// 秒
now.getTime(); // 时间戳,从1970,01,1,0:00:00,到现在的毫秒数
console.log(new Date(1639046245429)) // 时间戳转为时间
now.toLocaleDateString() // 调用的是一个方法,显示的是(当前时间:年月日)
</script>
5.2 JSON(字符串和对象之间的转换)
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
它易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
(1)转化过程 (json字符串转化为对象)(对象转化为json字符串)
<script>
var user = {
name: "zhangsan",
age: 18,
sex: '男'
}
// 对象转化为json字符串 {"name":"zhangsan","age":18,"sex":"男"}
var jsonuser = JSON.stringify(user);
// json字符串转化为对象 参数为JSON字符串
JSON.parse('{"name":"zhangsan","age":18,"sex":"男"}')
</script>
6,面向对象编程
6.1 什么是面向对象
类:就是一个模板。
对象:具体的实例。
在JavaScript中换一下思维方式。
JavaScript中的面向对象:
(1)原生继承
在通过对象名 . proto = 指向了要调用的对象。(获取被指向的对象的所有属性和方法)
<script>
var xiaoming = { // 对象
name: "zhangsan",
age: 18,
run: function () {
console.log(this.name + "run....")
}
}
var lisi = { // 对象
name: "lisi"
}
var fish={ // 对象
fish:function (){
console.log(this.name+"的鱼要被淹死了....")
}
}
// lisi的原型指向了xiaoming
lisi.__proto__ = fish; // lisi对象通过原生方法引向fish对象,以此获得fish所有方法属性
</script>
(2)class继承
1.定义一个类,属性、方法。
<script>
// 定义一个学生的类
class Student {
constructor(name) { // 构造函数
this.name = name;
}
hello() {
alert('Hello')
}
}
var xiaoming = new Student("xiaoming"); // class继承
var zhangsan = new Student("zhangsan"); // class继承
</script>
2.继承extends
<script>
// 定义一个学生的类
class Student {
constructor(name) {
this.name = name;
}
hello() { // 学生方法
alert('Hello')
}
}
class xiaoStudent extends Student {
constructor(name, grade) {
super(name);
this.grade;
}
myGrade(){ // 方法
alert('我是一名小学生')
}
}
var xiaoming = new Student("xiaoming");
var zhangsan = new xiaoStudent("zhangsan",1);
</script>
3.原型链
(1).所有的引用类型都有一个 proto (隐式原型)属性,属性值是一个普通的对象。
(2).所有的函数都有一个prototype(显示原型)属性,属性值是一个普通的对象。
(3).所有引用类型都有一个constructor(构造函数)属性,该属性(是一个指针)指向它的构造函数。
(4).所有引用类型的 proto 属性指向它构造函数的prototype。
7,操作BOM对象
JavaScript的诞生就是为了能在浏览器中运行。
BOM:浏览器对象模型。
以下常用方法:
(1)window:
window.innerHeight // 调整浏览器中的内部高宽度
315
window.innerWidth
1920
window.outerHeight // 调整浏览器中的外部高宽度
1040
window.outerWidth
1920
(2)location:
location代表当前页面的URL信息。
host: "www.baidu.com"
href: "https://www.baidu.com/"
protocol: "https:"
reload: ƒ reload() // 刷新网页
// 设置新的地址
location.assign() // 方法里面写链接
(3)document:获取具体文档中的所有节点。
<dl id="">
<dt>java</dt>
<dd>javase</dd>
<dd>javaee</dd>
</dl>
<script>
var dl = document.getElementById('app')// 获取dl中的所有节点
</script>
(4)获取cookie
document.cookie // 在页面中的控制台里,获取cookie值
(5)history:
history代表浏览器的历史记录。
history.back() // 操作网页后退
history.forward() // 操作网页前进
8,操作DOM对象
DOM:文档对象模型。
JavaScript在页面中的作用:
- JavaScript 能够改变页面中的所有 HTML 元素。
- JavaScript 能够改变页面中的所有 HTML 属性。
- JavaScript 能够改变页面中的所有 CSS 样式。
- JavaScript 能够对页面中的所有事件做出反应。
四大步骤:
- 更新:更新DOM结点。
- 遍历dom节点:得到DOM节点。
- 删除:删除一个DOM节点。
- 添加:添加一个新的节点。
1. 获得节点
要操作一个DOM节点,就要先获得DOM节点。
<div id="father">
<h1>标题1</h1>
<p id="p1">p1</p>
<p class="p2">p2</p>
</div>
<script>
// 对应CSS选择器
var h1 = document.getElementsByTagName('h1'); // 获得document节点
var h2 = document.getElementById('p1');
var h3 = document.getElementsByClassName('p2');
var father = document.getElementById('father');
var children = father.children;// 获取父节点下的所有子节点
father.firstChild; // 获得第一个子类节点 h1
father.lastChild;// 获得最后一个子类节点 p2
</script>
2. 更新节点
操作文本(在id名里面操作文本)。
<div id="id1"></div>
<script>
var id1 = document.getElementById('id1')
</script>
// (在插入节点的时候会覆盖掉原来的节点)
id1.innerText = '132' // 修改当前页面文本的值
id1.innerHTML='<strong>123</strong>' // 可以解析HTML的文本标签(意思是可以操作HTML的方法去设值)
操作JS
id1.style.color='red' // 给字体设置颜色
id1.style.fontSize='20px' // 给字体设置大小 注意驼峰命名
id1.style.background='blur'// 给背景颜色
id1.style.padding='10px' // 给内边框设置大小
3. 删除节点
删除节点步骤:先获取父节点,在通过父节点删除自己。
删除节点的时候,会出现一种删除动态流动的情况,比如在删除掉0这个元素的时候,那么它的下一个元素,也就是1,这个1元素会动态的变成0元素。
<div id="father"> // 父标题
<h1>标题1</h1>
<p id="p1">p1</p> // 子标题
<p class="p2">p2</p>
</div>
father.removeChild(p1) // 先获取父节点,在通过父节点删除自己
p1.parentElement // 找到父元素
// 删除是一个动态的过程
father.removeChild(father.children[0]) // 在删除0这个元素时,它是一个动态的体现,删除完后,012元素,会重新变成01两个元素
father.removeChild(father.children[1]) // 删除节点的时候,注意:childern是时刻在变化的。
father.removeChild(father.children[2])
4. 插入节点
我们获得了某个DOM节点,假设这个dom节点是空的,我们通过HTML就可以增加一个元素了。但是这个DOM节点已经存在元素了,就不能在进行使用了,因为插入新的元素时会覆盖掉原来的老元素。
追加:把外围元素追到到父类元素下。
<p id="js">JavaScript</p> // 标题JavaScript
<div id="list"> // 父标题
<p id="se">JavaSE</p> // 子标题
<p id="ee">JavaEE</p> // 子标题
<p id="me">JavaME</p> // 子标题
</div>
<script>
var js = document.getElementById('js')
var list = document.getElementById('list')
var zj = list.appendChild(js) // 追加的方法
console.log(zj) // 相对于输出,把id=“js”通过appendChild()方法追加到子标题里面
</script>
追加元素到父类元素下的效果:
创建一个新的标签,实现插入:
<p id="js">JavaScript</p>
<div id="list">
<p id="se">JavaSE</p>
<p id="ee">JavaEE</p>
<p id="me">JavaME</p>
</div>
<script>
var js = document.getElementById('js') // 已经存在的节点
var list = document.getElementById('list')
// 通过js创建一个新的节点
var newp = document.createElement('p') // 创建一个新的p标签
newp.id = 'newP';
newp.innerText='zhangsan你好';
list.appendChild(newp)
// 创建一个标签节点
var myScript = document.createElement('script');
myScript.setAttribute('type','text/javascript');
// 可以创建一个Style标签
var myStyle = document.createElement('style'); // 创建一个空style标签
myStyle.setAttribute('type','text/css');
myStyle.innerHTML = 'body{background: yellowgreen;}'; // 设置标签内容
document.getElementsByTagName('head')[0].appendChild(myStyle);
</script>
5. 操作DOM
操作DOM涉及到了jQuery的公式。
1,节点文本操作:
$('#test-u li[name=se]').text(); // 获得值
$('#test-u li[name=se]').text('设值值'); // 设值值
$('#test-u').html(); // 获取值
$('#test-u').html('<strong>12312</strong>'); // 设值值:通过jQuery来操作html属性,把12312加粗
2,操作CSS:
$('#test-u li[name=se]').css("color","red"); // 通过公式来调用css的方法
// 通过jQuery来操作css属性,把当前列表颜色设值成红色
3,元素的显示和隐藏:
$('#test-u li[name=se]').show(); // 元素显示
$('#test-u li[name=se]').hide(); // 元素隐藏
9,操作表单
文本框:text
下拉框:<select>
单选框:radio
多选框:checkbox
隐藏框:hidden
密码框:password
.........
(1)表单的目的:提交信息
获得要提交的信息:
<form action="pst">
<p>
<span>用户名:</span><input type="text" id="username">
</p>
// 多选框的值,就是定义和的value值
<P>
<span>性别:</span>
<input type="radio" name="sex" value="man" id="boy"> 男
<input type="radio" name="sex" value="woman" id="girl"> 女
</P>
</form>
<script>
var input_text = document.getElementById('username');// 通过ID来选中
var boy_radio = document.getElementById('boy');
var girl_radio = document.getElementById('girl');
// 得到输入框的值
input_text.value
// 修改输入框的值
input_text.value = '1234'
// 对于单选框,多选框等等固定的值boy_radio.value只能获取当前的值
boy_radio.checked;// 查看返回的结果是否为true,如果是true则被选中
</script>
2)提交表单:
<form action="#" method="post">
<p>
<span>用户名:</span><input type="text" id="username" name="username">
</p>
<p>
<span>密码:</span><input type="text" id="password" name="password">
</p>
// 绑定事件 onclick被点击
<button type="submit" onclick="aa()">提交</button>
</form>
<script>
function aa(){
var uname = document.getElementById('username');
var pwd = document.getElementById('password');
console.log(uname.value);
console.log(pwd.value);
pwd.value='1111';
}
</script>
10,jQuery
jQuery是一个库:里面存在大量的JavaScript函数。
获取jQuery:通过CDNjQuery引进JavaScript内。
// 引进CDNjQuery
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
1. jQuery公式的使用
公式:$(selector).action()
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
</head>
<body>
// 公式:$(selector).action()
<a href="" id="test-jQuery">点我</a>
<script>
document.getElementById('id');// 获取id
// 选择器就是CSS选择器
$('#test-jQuery').click(function () {
alert('hello,jquery'); // 点击(点我)弹出'hello,jquery'框
})
</script>
2. JS选择器与jQuery选择器的对比
js:元素js,选择器少,麻烦不好记住。
jQuery:css中的选择器它全部都能使用,比较好记。
<script>
// 元素js,选择器少,麻烦不好记
// 标签
document.getElementsByTagName()
// id
document.getElementById()
// 类
document.getElementsByClassName()
// jQuery css中的选择器它全部都能使用!
$('p').click() // 标签选择器
$('#id').click() // id选择器
$('.class1').click() // class选择器
</script>
3. action() :事件
什么是事件呢?
事件是指用户在某事务上由于某种行为所执行的操作,(对页面元素的某种操作)
比如:
1,鼠标事件:对应的操作方法。
2,事件:(举例:一个鼠标获取xy坐标的事件)
通过事件来创建一个可以获得鼠标当前位置的坐标。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>// 应用工具类
<style>
#divMove { // 给div设值属性
width: 500px;
height: 500px;
border: 2px red solid;
}
</style>
</head>
<body>
// 要求:获取鼠标当前的一个坐标
mouse: <span id="mouseMove"></span> // 定义一个单独的mouse
<div id="divMove"> // 元素里设值id名方便获取
在这里移动鼠标试试 // 文字标识
</div>
<script>
// 当网页元素加载完毕之后,响应事件
// 鼠标中设值坐标,有x:y:两个坐标
$(function () { // 在公式里面设值函数
$('#divMove').mousemove(function (e) { // 在函数里面获取#divMove的属性
$('#mouseMove').text('x:' + e.pageX + 'y:' + e.pageY) // 在函数内创建事件
})
})
</script>
</body>
</html>