JS部分

94 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

概述

JavaScripts是一门世界上最流行的脚本语言

Java, JavaScript

一名合格的后端人员,必须要精通JavaScript

历史

(29条消息) JavaScript的起源故事_杨校的博客-CSDN博客_javascript历史

ECMAScript它可以理解为是一个javaScript的一个标准

最新版本已经到es6版本~

但是大部分浏览器只停留在支持es5代码上!

开发环境-------线上环境, 版本不一致

快速入门

内部标签

<scripts>
        //....
</scripts>

外部引入

abs.js

//...

test.html

<scrip src="abc.js"></scrip>
<title>Title</title>
<!--&lt;!&ndash;    script标签内,  写JavaScript代码&ndash;&gt;-->
<!--    <script>-->
<!--        alert("hello world");-->
<!--    </script>-->

<!--注意: script标签,必须成对出现-->
    <script src="js/qj.js"></script>

<!--    不用显示定义type,  也默认就是 javaScript-->
    <script type="application/javascript">

    </script>

</head>
<body>
<!--<script src="js/qj.js"></script>-->

<!--这里也可以存放-->
</body>
<!--<script src="js/qj.js"></script>-->

浏览器入门

<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--  javaScript严格区分大小写-->
    <script>
      // 定义变量   变量类型   变量名  = 变量值;
      const score = 78;
      // alert(num);
      // 条件控制
      if (score>60 &&score<70){
          alert("60~70")
      }else if (score>70 && score<80){
          alert("70~80");
      }else {
          alert("other");
      }
      /**
       *console.log(score) 在浏览器的控制台打印变量! System.out.println();
       *
       */


    </script>
</head>

数据类型

数值,文本,图形,音频,视频......

变量

var $1  //合法
var 王者荣耀 = "倔强青铜";

number js不区分小数和整数

123 //整数 1123
123.1  //浮点数 123.1
1.123e1  //科学计数法
NaN // not a number  
Infinity  //表示无限大

字符串 ‘abc' "abc"

布尔值 true, false

逻辑运算

&& 两个都为真
||  一个为真,结果为真
!  真为假,假为真

比较运算符

= 
== 等于 (类型不一样, 值一样, 也会判断为true)
=== 绝对等于(类型一样,值一样,结果为true

须知

  • NaN === NaN 这个与所有的数值都不相等,包括自己
  • 只能通过isNaN(NaN)来判断这个数是不是NaN

浮点数问题:

console.log((1/3) === (1-2/3))

尽量避免使用浮点数进行运算,存在精度问题

Math.abs(1/3-(1-2/3))<0.00000001

null和undefined

  • null 空
  • undefined 未定义

数组

java的数值必须是一些相同类型的对象~,JS中不需要这样!

var arr = [1, 2, 3, 4, 5, 'hello', null, "cea"];

取数组下标:如果越界了,就会

undefined

对象

对象使用大括号,数组是用中括号~~

每个属性之间使用逗号隔开,最后一个不需要添加。
var person = {
    name: "liu",
    age:9,
    tags:['js','java','web','...']
}

取对象的值

person.name
>"liu"
person.age
>9

严格检查模式

<!--    全局变量-->
    // i = 1;
  //ES6  let 局部变量
  // let i = 9

  //严格检查模式
  //  'use strict'; 必须放在变量上面
  //  i = 9;
  // 预防JavaScript的随意问题

数据类型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
       'use strict';

       // console.log('\'');
       // console.log('a\nb');
       // console.log('a\tb');
       // console.log('\u4e2d');// \u#### Unicode字符
       // console.log("a");
       // console.log('\x41')  //Ascll字符

       //多行字符串编写
       // let msg =
       //         `你好啊
       //         未来的你自己
       //         希望你成功
       //         `

       // //模板字符串
       // let name = "liu";
       // let age = 3;
       // let msg = `你好呀, ${name}`

  //     字符串长度
       let student = "abj";
       console.log(student.length)
  //     字符串可变性,不可变
       student[0] = 1;
  //     结果依然不变
  //     大小写转化
  //     注意这里是方法不是属性
        console.log(student.toUpperCase());//大写
       console.log(student.toLowerCase())//小写
       console.log(student.indexOf('s'))//获取下标为
       console.log(student.substring(1))//从第一个往后全部截取
       console.log(student.substring(1,3))//[)
  </script>
</head>
<body>

</body>
</html>

数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    var arr = [1,2,3,4,5,6];
    console.log(arr);
    //数组内容可变
    arr[0] = 0;
    console.log(arr);

    //数组长度可变
    arr.length = 10;
    console.log(arr);

  //  如果赋值过小 元素就会丢失

    var arr1 = [1,2,3,"1","2"];
    arr1.indexOf(1);
    arr1.indexOf("1");
  //  两者不一样,下标不同

    // slice() 截取Array的一部分,返回一个新数组,类似于String中的substring
    arr1.slice(1,5);
    arr1.push("1")
    // push 压入尾部
    // pop  弹出尾部的一个元素

    // unshift() 压入头部的一个元素
    // shift()   弹出头部的一个元素

    arr1.sort();
  //  sort排序
  //  reverse()反转

    arr1.concat(["1","2"]);
  //  拼接没有干掉原数组,只是返回一个新数组

    arr1.join('-')
  //  链接符号join
  //  打印拼接数组,使用特定的字符串链接

    //多维数组
    arr2 = [[1,2,3],[8,9],["2","0"]]
    arr2[1][1]
  </script>
</head>
<body>

</body>
</html>

对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    'use strict';

    var person = {
      name : "liu",
      age : 3,
      email:"1234323@qq.com",
      score:0
    }

    // person.age
    // 3

    // 使用一个不存在的对象属性,不会报错!undefined
    // person.haha
    //  不会报错!  undefined

    // 动态的删减属性,通过 delete 删除对象的属性
    // delete person.age
    // true

  //  动态的添加属性,直接给新的属性添加值即可
  //   person.haha = "haha";
  //   // "haha"

  //  判断属性值是否在对象中
  //   ‘age’ in person
  //   true

  //  判断一个属性是否是这个对象自身所拥有的hasOwnProperty('age')

    
  </script>
</head>
<body>

</body>
</html>

数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    'use strict';
    // //if判断
    // var age = 3;
    // if (age>3){
    //   alert("haha");
    // }else {
    //   alert("jdjc")
    // }

    // while循环
    // var age =4;
    // while(age<100){
    //   age =age+1
    //   console.log(age);
    // }

    // // for循环
    // var age = 1;
    //
    // for (let i = 0; i < 100; i++) {
    //      console.log(i)
    // }

  //  数组循环
    var ages = [12,3,4,6,6,78,8,2,46];
    // age.forEach(function (value){
    //   console.log(value)
    // })

    for (var num in ages){
      if (age.hasOwnProperty(num)){
        console.log("存在");
        console.log(ages[num])
      }
    }
  </script>
</head>
<body>

</body>
</html>

Map和Set

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    'use strict'

    //ES6
    // new Map();
    // new Set();

    // var names = ["tom","jack","hha"];
    // var scores = [100,90,80];

    // Map
    // let map = new Map([['TOM', 90], ['jack', 80], ['liu', 78]]);
    // let name = map.get('TOM');
    // map.set('admin',123456);
    // console.log(name)

    // Set 无序不重复集合

    var set = new Set([3,1,1,2,1]);
    set.add(2);
    set.delete(1);
    console.log(set.has(3))//是否包含某个元素

  </script>
</head>
<body>

</body>
</html>

Iterator迭代器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    'use strict';
    let arr = [3,4,5];//遍历数组
    //in是下标,  of是值
    // var map = new Map([["tom",100],["jack",90],["liu",89]]);//遍历Map
    // var set = new Set([5,6,7]);//遍历Set

    // for (let x of map){
    //   console.log(x)
    // }

    // arr.name = "lcddc"//错误
    for (let x in arr){
      console.log(x);
    }
  </script>
</head>
<body>

</body>
</html>

函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>

// 一旦执行到return代表函数结束,返回结果
// 如果没有执行return, 函数执行完也会返回结果, 结果就是 undefined

    // function abs(x){
    //   if (x>=0){
    //     return x;
    //   }else {
    //     return -x;
    //   }
    // }

    // var abs = function (x){
    //   //可以传递多个参数,所以要手动抛出异常
    //   if (typeof x !== 'number'){
    //     throw 'No a number'
    //   }
    //   if (x>=0){
    //     return 0;
    //   }else {
    //     return -x;
    //   }
    // }

    var abs = function (x){
    //可以传递多个参数,所以要手动抛出异常
    // arguments  是一个JS免费赠送的关键字
    //  代表传递进来的所有参数是一个数组
      console.log("x=>"+x);

      for (var i = 0;i<arguments.length;i++){
        console.log(arguments[i]);
      }
      if (x>=0){
        return 0;
      }else {
        return -x;
      }
    }
  </script>
</head>
<body>

</body>
</html>

rest用法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script>
    // function aaa(a,b){
    //   console.log("a=>"+a);
    //   console.log("b=>"+b);
    //   if (arguments.length>2){
    //     for (var i = 2;i<arguments.length;i++){
    //     //  判读多的情况
    //     }
    //   }
    // }

    // 多个参数除了第一个之外的所有参数
    function aaa(a,b,...rest){
      console.log("a=>"+a);
      console.log("b=>b"+b);
      console.log(rest)
    }
  </script>
</head>
<body>

</body>
</html>

变量作用域

function qj(){
  var x = 1;
  //内部函数可以访问外部函数的成员, 反之则不行
  function qj2(){
    var y = x+1;
  }
  var z = y+1;
}
function qj(){
    var x = 1;

    function qj2(){
        var x = 'A';
        console.log('inner'+x);
    }
    console.log('outer'+x)
    qj2()
}
qj();
function qj(){
    //变量y提到前面,默认的
    var x = "x" +y;
    console.log(x);
    var y = 'y';
}
qj();
function qj2(){
    var x = 1;
        y = x+1;
        z,i,a; 
}

全局函数

//全局变量
var x = 1;
function f(){
    console.log(x);
}
f()
console.log(x)
//全局对象 window  alert()这个函数本身也是一个window 变量
var x = "xxx";
window.alert(x);
window.alert(window.x);
var x = 'xxx';
window.alert(x);

var old_alert = window.alert;

window.alert = function (){

}
//发现 alert()  失效了
window.alert(123);

//  恢复
window.alert = old_alert;
window.alert(456);
//把自己的代码全部放入自己定义的唯一空间名字, 降低全局命命冲突
  // 唯一全局变量
  var liu = {};

//  定义全局变量
  liu.name = "ko";
  liu.add = function (a,b){
      return a+b;
  }

局部作用域 let

function aaa(){
    for (let i = 0;i <100;i++){
        console.log(i);
    }
    console.log(i+1);
//    i可以被全局使用,解决这个问题出现了局部变量  let
}
var PI = '3.14';
//改变了常量,所以引入了const
console.log(PI);

PI = "123";
console.log(PI)

方法

var liu = {
  name : 'jiu',
  bitrh :2021,

  age: function (){
    var now = new Date().getFullYear();
    return now -this.bitrh
  }
}
function getAge(){
    var now = new Date().getFullYear();
    return now -this.bitrh
  }

  var liu = {
    name : 'jiu',
    bitrh :2021,
    age: getAge
  }
//  使用liu.age调用不然调用的是本地的
  getAge().apply(liu,[]);//this指向liu这个对象,参数为空

内部对象

标准对象

typeof 123
"number"
typeof '123'
"string"
typeof true
"boolean"
typeof NaN
"number"
typeof [] 
"object"
typeof {}
"object"
typeof Math.abs
"function"
typeof undefined
"undefined"

JSON

  1. JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式

  2. 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

  3. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在JavaScript一切皆对象,任何js支持的类型都可以用JSON来表示;

格式

  • 对象都用 {}
  • 数组都用 []
  • 所有的键值对 都是用 key: value

Ajax

  • 原生的js写法 xhr异步请求
  • JQuery封装好的方法 $("#name").ajax("")
  • axios请求

面向对象

  • 类: 模板
  • 对象 : 具体的实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var student = {
        name : "liu",
        age : 3,
        run:function (){
            console.log(this.name+" run....")
        }
    };
    var liu1 = {
        name: liu1
    };
    var Bird = {
        fly :function (){
            console.log(this.name+"fly...");
        }
    }
    //               原型父类  
    liu1.__proto__ = student;
</script>

</body>
</html>
//  不用记住这种方法
function Student(name){
  this.name = name;
  hello : function f(){

  }
}
Student.prototype.hello = function (){
  alert("hello")
}

class继承

class关键字,实在ES6引入的

//es6之后
class Student{
  constructor(name) {
    this.name = name;

  }
  hello(){
    alert("hello")
  }
}
  var xiaoming = new Student("xiaoming");

继承

class Student{
  constructor(name) {
    this.name = name;

  }
  hello(){
    alert("hello")
  }
}
class xiaoxuesheng extends Student{
  constructor(name,grade) {
    super(name);
    this.grade = grade;
  }
  myGrade(){
    alert("xiaoxuesheng")
  }
}
var xiaoming = new Student("xiaoming");
var xiaohong = new xiaoxuesheng("xiaohong",1);

原型链

操作BOM对象

浏览器介绍

JavaScript 和 浏览器关系?

JavaScript 诞生就是为了能够让他在浏览器中运行

BOM: 浏览器对象模型

  • IE 6~11
  • Chrome
  • Safari
  • FireFox
  • Opera

第三方浏览器

  • QQ浏览器
  • 360浏览器

window

window 代表浏览器窗口

window.alert(1)

window.innerHeight

window.innerwidth

window.outerHeight

window.outerwidth

window.innerHeight

Navigator, 封装了浏览器的信息

navigator.appName    //当前应用名字
navigator.appVersion //当前浏览器的版本
navigator.userAgent  //用户的信息
navigator.platform   //系统版本

Navigator 是一个类,navigator小写是对象

navigator 会被人为的修改掉

screen

代表屏幕信息

screen.width
1920px
screen.height
1080px

location

location 代表当前页面的IURL信息

host:"www.baidu.com"           //主机
herf: "https://www.baidu.com/"  //当前网页的位置
protocol: "https"               //协议
reload: f reload()              //重新加载

document (当前文档信息)

document.title  //当前页面标题
document.title = "liu" //可以改变标题
<dl id="app">
  <dt>Java</dt>
  <dd>JavaSE</dd>
  <dd>JavaEE</dd>
</dl>

<script>
  var dl = document.getElementById('app');//或取当前结点
</script>

获取cookie

客户端的本地信息

document.cookie
'SRCHUID=V=2&GUID=0BA89A2920DD4329AFDC4DEA42773F6A&dmnchg=1; SRCHD=AF=NOFORM; _EDGE_V=1; MUID=168A9ED797A26A6D3857915D96E16B63; PPLState=1; _tarLang=default=zh-Hans; _TTSS_IN=hist=WyJlbiIsImF1dG8tZGV0ZWN0Il0=; _TTSS_OUT=hist=WyJ6aC1IYW5zIl0=; ANON=A=E81E12D553FDC4474E1FBAB0FFFFFFFF&E=1a21&W=1; NAP=V=1.9&E=19c7&C=t-1AelOnhz3Ybv3Dp7GBvvWgufbBuyVTZ2rviS3Yc9anECoHWHnfCg&W=1; _U=1JXOSJjbMO4MhaqucFOkoMO15z_XS2D5bIsN6RMrU8U_Nw1yEs6507ZoqoRi6Qiiqeg0EDG9LHMX2BQuBbmer2vc7BPwldPuQspUx9gNvbuxkTLw3ahQBKTpRHUNTvrz8knkwkrfc6EOkZhbWwAkOY8dREfDRqrgSSw2psU44QTAdd-egyyz79k3z6D8C81U6; ABDEF=V=13&ABDV=11&MRNB=1635472969642&MRB=0; WLS=C=77ff6fbd11361f7e&N=kan; _SS=SID=2A14994E67026B3C1E9789AE66646A78; SRCHUSR=DOB=20201122&T=1635563493000&POEX=W; SNRHOP=I=&TS=; ipv6=hit=1635567086670&t=4; SRCHHPGUSR=SRCHLANGV2=zh-Hans&IPMH=d8fa6bd7&IPMID=1620955997173&BZA=0&BRW=NOTP&BRH=M&CW=339&CH=722&DPR=1.25&UTC=480&DM=0&EXLTT=31&HV=1635566984&WTS=63770901338&PLTL=450&PLTA=743&PLTN=4&SRCHLANG=zh-Hans&SW=1536&SH=864'

服务器端可以设置 cookie : httpOnly

history

history.back()      //前进
history.forward()   //后退

操作DOM对象

核心

浏览器网页就是一个DOM树形结构

  • 更新: 更新Dom结点
  • 遍历dom结点: 得到Dom结点
  • 删除: 删除一个Dom结点
  • 添加: 添加一个新的结点

要操作一个结点,就必须要先获得这个Dom结点

    <title>Title</title>
</head>
<body>
<div id="father">
  <h1>标题一</h1>
  <p id="p1">p1</p>
  <p class="p2">p2</p>
</div>


<script>
<!--对应css选择器-->
var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementById('p2');
var p2 = document.getElementsByClassName('p2');
var father= document.getElementById('father');

var childrens = father.children; //获取所有父节点下的所有子结点
father.firstChild;//获取第一个结点
father.lastChild; //获取最后一个结点
</script>
</body>
</html>

更新结点

  • id1.innerText = '456'
  • id1.innerHTML='123' 加粗 可以解析HTML文本标签
<div id="id1">

</div>

<script>
  var id1 = document.getElementById('id1')
</script>

改变css

id1.style.color = 'red'
id1.style.fontSize = '200px'  //驼峰命名
id1.style.padding = '2em'

删除节点

删除节点步奏: 先获取父类节点,在通过父类节点删除自己

<div id="father">
  <h1>标题一</h1>
  <p id="p1">p1</p>
  <p class="p2">p2</p>
</div>


<script>
<!--对应css选择器-->
var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementById('p2');
var p2 = document.getElementsByClassName('p2');
var father= document.getElementById('father');

var childrens = father.children; //获取所有父节点下的所有子结点

// father.firstChild;//获取第一个结点
// father.lastChild; //获取最后一个结点
p1.parentElement; //获得父类元素
father.removeChild(p1)//删除子节点
father.removeChild(father.children[0])
//删除一个节点就会删除下面的所有结点

插入结点

我们获得了某个Dom结点,假设这个dom结点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM结点已经存在元素了,我们就不能这么干了!会产生覆盖

<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');

  var newp = document.createElement('p');
  newp.id = 'newp1';
  newp.innerText = "hello liu"

 //创建一个标签结点
  var myScript = document.createElement('script');
  myScript.setAttribute('type','text/javascript');

  var myStyle = document.createElement('script');
  myStyle.setAttribute('type','text/css');
  myStyle.innerHTML = 'body{background-color: chartreuse;}';

  document.getElementsByTagName('head')[0].appendChild(myStyle)
  
</script>

操作表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<from action="post">
  <p>
    <span>用户名: </span> <input type="text" id="username" required>
  </p>
  <p>
    <span>性别: </span>
    <input type="radio" name="sex" value="man" id="boy"> 男
    <input type="radio" name="sex" value="women" id="girl"> 女
  </p>

  <input type="submit">
</from>

<script>
  var input_text = document.getElementById('username');
  var boy_radio =document.getElementById('boy');
  var girl_radio =document.getElementById('girl');

  input_text.value;
  input_text.value = '123';

  boy_radio.value;
//  获得单选框的值

  boy_radio.checked;//查看返回结果,是否为true, 如果为true则被选中

  girl_radio.checked = true; //赋值
</script>

</body>
</html>

提交表单

<form action="post">
  <p>
    <span>用户名: </span> <input type="text" id="username" required>
  </p>
  <p>
    <span>性别: </span>
    <input type="radio" name="sex" value="man" id="boy"> 男
    <input type="radio" name="sex" value="women" id="girl"> 女
  </p>

  <input type="submit">
</form>

<script>
  var input_text = document.getElementById('username');
  var boy_radio =document.getElementById('boy');
  var girl_radio =document.getElementById('girl');

  input_text.value;
  input_text.value = '123';

  boy_radio.value;
//  获得单选框的值

  boy_radio.checked;//查看返回结果,是否为true, 如果为true则被选中

  girl_radio.checked = true; //赋值
</script>
//md5加密
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>

</head>
<body>

<form action="#" method="post">
  <p>
    <span>用户名: </span> <input type="text" id="username" name="username">
  </p>
  <p>
    <span>密码: </span> <input type="password" id="password" name="password">
  </p>

  <button type="submit" onclick="aaa()">提交</button>
</form>

<script>
  function aaa(){
    var uname = document.getElementById('username');
    var pwd = document.getElementById('password');

    console.log(uname.value);
    console.log(pwd.value);
    //Md5算法
    pwd.value = md5(pwd.value)
    console.log(pwd.value);
    // pwd.value = '***'

  }
</script>

最优

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>

</head>
<body>

<form action="https://www.baidu.com/?tn=02003390_13_hao_pg" method="post"  onsubmit="return aaa()">
  <p>
    <span>用户名: </span> <input type="text" id="username" name="username">
  </p>
  <p>
    <span>密码: </span> <input type="password" id="input-password">
  </p>

  <input type="hidden" id="md5-password" name="password">

  <button type="submit" onclick="aaa()">提交</button>
</form>

<script>
  function aaa(){
    alert(1)
    var uname = document.getElementById('username');
    var pwd = document.getElementById('input-password');
    var md5pwd = document.getElementById('md5-password');

    md5pwd.value = md5(pwd.value)
    return true;

  }
</script>

</body>
</html>

jQuery

JQuery库,里面存在大量的JavaScript函数

<!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>

</head>
<body>
<a href="" id="test-jquery">点我</a>

<script>

    // document.getElementById('id');  多余
    // 选择器就是css选择器

    // 选择器       一个事件
    // $(selector).action()
    $('#test-jquery').click(function (){
        alert('hello jquery');
    });
</script>
</body>
</html>

选择器

<script>
  //标签
  document.getElementsByTagName()
  document.getElementsByTagNameNS()
  //id
  document.getElementById();
  //类
  document.getElementsByClassName();

  //jQuery  css 中的选择器它全部都能用!
  $('p').click();//标签选择器
  $('#id1').click();//id选择器
  $('.class').click();//类选择器
  
</script>

jQuery API 中文文档 | jQuery API 中文在线手册 | jquery api 下载 | jquery api chm (cuishifeng.cn)

事件

鼠标事件,键盘事件,其他事件

<!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{
      width: 500px;
      height: 500px;
      border: 1px solid red;
    }
  </style>
</head>
<body>
mouse : <span id="mouseMove"></span>
<div id="divMove">
在这里移动试一试
</div>
<script>
  $(function (){
    $('#divMove').mousemove(function (e){
      $('#mouseMove').text('x: '+e.pageX + 'y: '+e.pageY)
    })
  });
</script>
</body>
</html>

操作DOM元素

<!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>
</head>
<body>
<ul id="test-ul">
  <li class="js">JavaScript</li>
  <li name="python">python</li>
<!--  <li>JavaScript</li>-->

</ul>
<script>
  $('#test-ul li[name=python]').text();
  $('#test-ul').html();

</script>
</body>
</html>

css操作

$('#test-ul li[name=python]').css("color","red");

元素的显示和隐藏

$('#test-ul li[name=python]').show()
$('#test-ul li[name=python]').hide()
$('#test-ul li[name=python]').toggle();//相反操作