0
点赞
收藏
分享

微信扫一扫

jQuery详解

全栈学习笔记 2022-03-11 阅读 44

1.什么是JavaScript?

JavaScript是一门直接上最流行的脚本语言
ECMAScript是JavaScript的一种标准规范

2.基本使用及HelloWorld

JavaScript快速上手:第一个JavaScript
设置弹窗alert

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的第一个JavaScript程序</title>
<!--    script标签内写JavaScript代码-->
<!--  <script !src="">-->
<!--    alert("hello world!");-->
<!--  </script>-->


<!--    外部引入 注意:script标签必须成对存在-->

    <script src="js/qd.js"></script>
<!--    不用显示定义type,也默认就是JavaScript-->
    <script type="text/javascript"> </script>

</head>
<body>






<!--这里也可以存放JavaScript代码-->
</body>
</html>
alert('hello world');

3.浏览器控制台的使用

控制台调试变量

在这里插入图片描述

控制台打印变量,相当于sout

![在这里插入图片描述](https://img-blog.csdnimg.cn/c5ddcaf9868143a5a4c50a940b9fb6dc.png

源码

在这里插入图片描述

调试代码

在这里插入图片描述

控制台最常用

在这里插入图片描述

4.数据类型快速浏览

1.数据类型:
数值、文本、图形、音频、视频……

2.js不区分小数和整数,Number
123 // 整数123
123.1 //浮点数123. 1
1.123e3 //科学计数法
-99	//复数
NaN //not a numbe 
Infinity //表示无限大

3.逻辑运算
 && 	与
 ||		或
 !		非
 
4.比较运算符(很重要,相当于是JS的一个缺陷,坚持不要使用==比较)
=
==
等于(类型不一样,值一样,也会判断为true)
=== 
绝对等于(类型-样,值一样,结果true)

5.字符串
"abc" 'abc'

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

7.空指针
null和undefined
●null空
●undefined 未定义

8.数组
Java的数值必须是相同类型的对象~,JS中不需要这样!
var arr = [1,2,3,4,5,'he11o' ,nu11,true]
取数组下标:如果越界了,就会
1 undefined

9.对象(所有变量都是用var关键字)
对象是大括号,数组是中括号
 var person={
            name:"suibian",
            age:15,
            tags:['js','java','web','66']
        }

属性之间用逗号隔开,最后一个属性不需要添加逗号

10.变量
主要不能以数字开头
可以用$开头,也可以使用下划线
也可以使用中文

浮点数问题:(尽量避免使用浮点数,存在精度问题)

在这里插入图片描述
可以使用判断测试范围
在这里插入图片描述

5.严格检查模式strict

前提是IDEA设置了es6

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>严格检查模式</title>
    <script !src="">
        // 写js代码尽量带上严格检查模式↓ 避免出现js随意性产生的一些问题
        //下面这行代码必须写在JS第一行
        'use strict';
        // 全局变量:尽量避免,因为太容易冲突
        i=1;
        // 另外局部变量尽量都是用let定义
        let i=1;
    </script>
</head>
<body>

</body>
</html>

6.字符串类型详解

转义字符

’ 单引号
\n 换行
\t table空格
\u4e2d \u#### Unicode字符
\x41 Ascll字符

多行字符串编写

使用esc按键上的字符,就可以编写多行字符串

<script>
        'use strict'
        var msg=
            `
            你好
            nihao
            hello world
            `
        
    </script>

模板字符串

  let name="suibian";
        let age=15;
        let msg=`你好呀,${name}`

在这里插入图片描述

字符串长度

console.1og(str. length)

字符串的可变性(不可变)

console.log(msg)
VM127:1 你好呀,suibian
undefined
var student="student"
undefined
student[0]=1
1
console.log(student)
VM317:1 student

方法

1.小写转换成大写

console.log(msg)
VM127:1 你好呀,suibian
undefined
var student="student"
undefined
student[0]=1
1
console.log(student)
VM317:1 student
undefined
console.log(student.toUpperCase)
VM450:1 ƒ toUpperCase() { [native code] }
undefined
 console.log(student.toUpperCase())
VM469:1 STUDENT

2.大写转换成小写

console.log(msg)
VM127:1 你好呀,suibian
undefined
var student="student"
undefined
student[0]=1
1
console.log(student)
VM317:1 student
undefined
console.log(student.toUpperCase)
VM450:1 ƒ toUpperCase() { [native code] }
undefined
 console.log(student.toUpperCase())

VM469:1 STUDENT
undefined
console.log(student.toLowerCase())
VM495:1 student
undefined

3.其他方法

在这里插入图片描述
注意substring是[ )的意思,包前面不包后面的一个范围

7.数组类型详解

JS里面Array可以包含任意的数据类型

var arr=[1,2,3,4,5]
undefined
console.log(arr)
VM599:1 (5) [1, 2, 3, 4, 5]
0: 1
1: 2
2: 3
3: 4
4: 5
length: 5[[Prototype]]: Array(0)
undefined

数组的内容可以产生变化

修改数组的长度大于实际数组内容长度,数组的长度就会发生变化,只是会产生空的未被定义的内容,如果小于实际数组内容的长度,就会产生内容缺失,但是是可以运行的

indexOf:下标索引

arr=[1,2,3,4,5,6,"1","2"]
(8) [1, 2, 3, 4, 5, 6, '1', '2']
arr.indexOf(0)
-1
arr.indexOf(1)
0
arr.indexOf(2)
1
arr.indexOf("1")
6

slice截取数组一部分的数据(类似于String中的SubString)

arr=[1,2,3,4,5,6,"1","2"]
(8) [1, 2, 3, 4, 5, 6, '1', '2']
arr.indexOf(0)
-1
arr.indexOf(1)
0
arr.indexOf(2)
1
arr.indexOf("1")
6
arr.slice(2)
(6) [3, 4, 5, 6, '1', '2']

push、pop 尾部添加元素、去掉尾部第一个元素

arr.push("a","b")
10
arr
(10) [1, 2, 3, 4, 5, 6, '1', '2', 'a', 'b']
arr.pop()
'b'
arr
(9) [1, 2, 3, 4, 5, 6, '1', '2', 'a']

push是往尾部添加元素
pop是排除掉最后一个元素

unshift、shift 头部添加元素、去掉头部第一个元素

arr=[1,2,3,4,5]
(5) [1, 2, 3, 4, 5]
arr.unshift("a","b")
7
arr
(7) ['a', 'b', 1, 2, 3, 4, 5]
arr.shift
ƒ shift() { [native code] }
arr.shift()
'a'

unshift往头部开始加入元素
shift是去掉头部的第一个元素
shift括号里面添加任何数字都是去掉第一个元素

arr.sort()排序

arr=["A","D","C"]
(3) ['A', 'D', 'C']
arr.sort()
(3) ['A', 'C', 'D']

arr.reverse()元素反转

arr=["A","D","C"]
(3) ['A', 'D', 'C']
arr.sort()
(3) ['A', 'C', 'D']
arr.reverse()
(3) ['D', 'C', 'A']

arr.concat()返回数组、没有修改数组

arr=["A","D","C"]
(3) ['A', 'D', 'C']
arr.sort()
(3) ['A', 'C', 'D']
arr.reverse()
(3) ['D', 'C', 'A']
arr.concat(1,2,3)
(6) ['D', 'C', 'A', 1, 2, 3]
arr
(3) ['D', 'C', 'A']

join是数组内的元素用某连接符号连接起来

arr.join('-')
'D-C-A'

多维数组

arr = [[1,2],[3,4],["5","6"]];
arr[1] [1]
4

8.对象类型详解

设置若干个对象
JS中所有的键都是字符串,值是任意对象

var 对象名={
	属性名:属性值
	属性名:属性值
	属性名:属性值
}
//定义了一个person对象,他有四个属性
var person={
            name:"suibian",
            age:15,
            length:20
        }

使用键值对,也就是对象属性:对象值,多个属性之间用逗号隔开,最后一个属性不加逗号

对象赋值

  person.name="suibian1";

使用一个不存在的属性报错

person.hah
undefined

动态删减属性

delete person.name
true
person
{age: 15, length: 20}

动态添加属性

person.haha=1
1

查找对象值

'age' in person
true
'toString' in person
true

判断一个属性是否是这个对象自身拥有的

person.hasOwnProperty('age')
true
person.hasOwnProperty('toString')
false

9.分支和循环详解

if判断

 var age=3;
        if (age>3){
            alert("suibian")
        }else{
            alert("maiyou")
        }
   		

while、do while循环语句

 while (age<100){
            age=age+1;
            console.log(age)
        }
		do{
			 age=age+1;
			 console.log(age)
   		}while(age>3)

在这里插入图片描述
避免死循环,例如弹窗永远关不掉

while(true){
	alert(123)
}

for循环

//快捷fori,和java的i.for有一点点不一样
        for (let i = 0; i < 100; i++) {
            console.log(i)
        }

遍历数组

 var age=[12,456,8,78,7156,4,878,7,489]
        age.forEach(function (value){
            console.log(value)
        })

for……in

  for (var num in age){
            // if (age.hasOwnProperty(num)){
            //   
            // }
            console.log(age[num])
        }

最常用↓↓↓↓也可以遍历Map以及字符、数组等等

  for (var x of age){
            console.log(x)
        }

遍历Set

var set = new Set([5,6,7]);
for (1et x of set) {
console.1og(x)
}

遍历Map

var map = new Map([["tom" ,100],["jack" , 90],["haha" ,80]]);
for (1et x of map){
console.log(x)
}

10.Map和Set集合

检查有没有报错,需要ES6,ES6新特性

new Set();
new Map();

Map集合

  new Set();
        new Map();
        var map=new Map([['tom',100],['jack',90],['jary',10]]);
        var name=map.get('tom');// 通过key值获得value
        console.log(name);
        map.set('admin',20);//新增元素
        map.delete("tom")//删除元素

Set集合(set是无序不重复的集合)

var set=new Set([1,1,1,1,3,4])

下面的是浏览器调试台测试

Set(3) {1, 3, 4}
set.add(1)
Set(3) {1, 3, 4}
set.add(8)
Set(4) {1, 3, 4, 8}
set.delete(1)
true
set
Set(3) {3, 4, 8}

查看是Set否包含某元素

console.log(set.has(3))
VM322:1 true
undefined

Iterator遍历Set中的元素

ES6新特性,因为for in有漏洞,遍历下标的时候会将name,age等属性遍历进去

11.函数的定义和参数获取

定义方式一、

JS里面所有的函数都是用function定义
-旦执行到return代表函数结束,返回结果!
如果没有执行return,函数执行完也会返回结果,结果就是undefined

  function abs(x){
            if (x>0){
             return   x=1
            }else {
              return  x=0
            }
        }

定义方式二、

这种就是匿名内部类的写法

 var abs=function (x){
            if (x>0){
             return   x=1
            }else {
            return   x=0
            }
        }

调用函数

abs(10)

手动抛出异常

JS可以传输任意的参数,但是也可以不传递参数,都不会报错
所以就需要手动定义异常,(JS不严谨)

 var abs=function (x){
            if (typeof x!='number'){
                throw 'Not a Number';
            }
            if (x>0){
               return  x=1
            }else {
               return  x=0
            }
        }

在这里插入图片描述

arguments关键字(遍历全部元素)

 var abs=function (x){

            if (typeof x!='number'){
                throw 'Not a Number';
            }

            console.log("x=>"+x);
            for (let i = 0; i < arguments.length; i++) {
                console.log( arguments[i])
            }


            if (x>0){
               return  x=1
            }else {
               return  x=0
            }
        }

在这里插入图片描述

rest的使用(多个参数往后的参数归为数组)

 function abs(a,b,...rest){
            console.log(a);
            console.log(b);
            console.log(rest);
        }

11.变量的作用域、let、const详解

如果两个函数使用了相同的变量名,只要是在内部就不冲突

function sb(){
      var x=1;
      x=x+1;
    }
    function sb1(){
      var x="A";
      x=x+1;
    }

内部函数可以访问外部函数,反之则不行

    function sb(){
        var x=1;
        function sb1(){
          y=x+1;//内部函数可以访问外部函数————可运行
        }
        z=y+1;//报错Uncaught ReferenceError: y is not defined
      }

假设内部函数变量名和外部函数变量名重名

function a(){
      var x=1;
      function a2(){
          var x='A';
          console.log('inner'+x);
      }
      console.log('outer'+x);
      a2();
  }

在JS中函数查找变量从自身函数开始,由内向外查找,假设外部存在同名的函数变量,则内部函数会屏蔽外部函数的变量

提升变量的作用域

 function a(){
      var x="x"+y;
      console.log(x);
      var y='y';
  }
  a();

得出结果xundefined
相当于

 function a(){
 	var y;
      var x="x"+y;
      console.log(x);
      var y='y';
  }
  a();

JS执行引擎,直接提升的y的声明,但是不会提升变量y的赋值,属于JS的特性
所以变量的定义应该直接先放在头部,不要乱放,便于代码维护

 function a(){
      var x=1,
          y=x+1,
          z,i,b;undefined
      //之后随意用
  }

全局对象
默认所有的全局变量都会被绑定在windows下
alert本身也是windows下的一个变量

规范

//规范
     var guifan= {};
     //定义全局变量
    guifan.name='guifan';
    guifan.add=function (a,b){
        return a+b;
    }

把自己的代码放入自己的定义的唯一空间中,降低全局命名冲突的问题

let局部作用域

 function aaa(){
      for (var i = 1; i <100 ; i++) {
          console.log(i)
      }
      console.log(i+1)//问题?i已经跑出了作用域了
  }

let关键字解决局部作用域冲突问题

 function aaa(){
      for (let i = 1; i <100 ; i++) {
          console.log(i)
      }
      console.log(i+1)//问题?i已经跑出了作用域了
  }

常量const(ES6新特性—只读变量)

ES6之前都是常量用大写来代替,习惯
ES6引入之后就用const定义,它是一个只读变量

 const PI=3.14
 PI=2.12//报错

12.方法的定义和调用、apply

方法就是吧函数放在对象里面,对象只有两个东西:属性和方法

  var ming={
        name:'名',
        birth:2000,
        age:function (){
            var now=new Date().getFullYear();
            return now-this.birth;
        }
    }

apply
在这里插入图片描述

13.Date

内部对象

typeof NaN
'number'
typeof true
'boolean'
typeof 123
'number'

获取时间Date

   var now =new Date();//Thu Mar 03 2022 10:02:29 GMT+0800 (中国标准时间)
        now.getFullYear();
        now.getMonth();//0-11月份
        now.getDate();
        now.getDay();//星期几
        now.getHours();
        now.getMinutes();
        now.getSeconds();
        now.getTime();//时间戳,全世界统一,子1970.1.1 00:00 开始的毫秒数
        //根据时间戳返回当前的时间
        // now.getTime();
        // 1646273359214
        // console.log(new Date(1646273359214))
        // VM457:1 Thu Mar 03 2022 10:09:19 GMT+0800 (中国标准时间)
        // 返回本机规格的时间
        // now.toLocaleString()
        // '2022/3/3 10:15:52'


        now.getUTCSeconds();//根据世界时返回时间的秒数(0~59)。

最标准的就是

 now.getTime();
 console.log(new Date(1646273359214))

14.JSON对象(轻量级的数据交换格式)

JSON字符串和JS对象的转换

  var user={
            name:"sb",
            age:3,
            sex:'男'
        }
        //对象转化为json字符串
        var jsonUser=JSON.stringify(user);
        //json字符串转换为对象,参数为json字符串
        var obj=JSON.parse('{ "name":"sb","age":3,"sex":"男"}');

Ajax

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

15.面向对象原型继承

proto(指向关系,类似于继承)

   var User={
            name:"sb",
            age:3,
            sex:'男',
            run: function (){
            console.log(this.name+"run...");
        }
        };
          var xiaoming={
            name: "xiaoming"
        };
        //小明的原型指向User
        xiaoming.__proto__=User;

如果中间小明指向了人、后面指向了鸟,那他就是先成为人再成为鸟

16.面向对象class继承

   function Box(name, age) {
   			 //构造函数模式
            this.name = name;
            this.age = age;
            this.run = function () {
                return this.name + this.age + '正在运行...';
            };
        }
        var box1 = new Box('Sb', 100); //new Box()
        var box2 = new Box('Sb1', 200);
        alert(box1.run());
        alert(box1 instanceof Box); //box1从属于Box

17.操作BOM对象(重点!!)

BOM浏览器对象模型

windows代表浏览器窗口

在这里插入图片描述

Navigator(多数的时候不会使用)

Navigator封装了浏览器信息,多数的时候不会使用,因为它可以认为修改

navigator.appVersion
'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
navigator.platform
'Win32'

screen

screen.height
900
screen.width
1600

location(重点)代表当前页面的URL信息

location
Location {ancestorOrigins: DOMStringList, href: 'https://www.baidu.com/', origin: 'https://www.baidu.com', protocol: 'https:', host: 'www.baidu.com', …}
ancestorOrigins: DOMStringList {length: 0}
assign: ƒ assign()
hash: ""
host: "www.baidu.com"		主机
hostname: "www.baidu.com"		
href: "https://www.baidu.com/"		挂钩
origin: "https://www.baidu.com"
pathname: "/"
port: ""
protocol: "https:"		协议
reload: ƒ reload()		方法——重新加载——刷新网页
replace: ƒ replace()
search: ""
toString: ƒ toString()
valueOf: ƒ valueOf()
Symbol(Symbol.toPrimitive): undefined
[[Prototype]]: Location

location.assign('https://fanyi.youdao.com/')	设置新的地址,在JS中放入新的地址就可以实现跳转

document 当前页面

document.title='狂神说'		改变当前页标题
'狂神说'

获取具体的文档树节点

<dl id="app">
    <dt>java</dt>
    <dd>SE</dd>
    <dd>AE</dd>
    <dd>UE</dd>
    <dd>IE</dd>
</dl>
<script !src="">
    var dl=document.getElementById('app');
</script>
dl
<dl id=​"app">​<dt>​java​</dt><dd>​SE​</dd><dd>​AE​</dd><dd>​UE​</dd><dd>​IE​</dd></dl>

获取cookie(重点)

document.cookie

劫持cookie原理

恶意获取你的cookie,上传到自己的服务器
解决办法:服务端可以设置cookie:httpOnly

history浏览器历史记录

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

18.获取DOM节点

浏览器网页就是一-个Dom树形结构!
●更新:更新Dom节点
●遍历dom节点:得到Dom节点
●删除:删除一个Dom节点
●添加:添加一个新的节点
要操作一个Dom节点,就必须要先获得这个Dom节点

 <div id="father">
                <h1 >标题一</h1>
                <p id="p1">p1</p>
                <p class="p2">p2</p>
            </div>
            <script !src="">
                var h1=document.getElementsByTagName('h1');
                var p1=document.getElementById('p1');
                var p2=document.getElementsByClassName('p2');
                var father=document.getElementById('father');

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

            </script>

这是原生代码,之后尽量都是用JQuery();

19.更新DOM节点

<div id="id1">

</div>

更新节点

修改文本的值

id1.innerText='123'
id1.innerText='456'

加粗文本(HTML)可以解析HTML文本标签

id1.innerHTML='<strong>123</strong>'

给文本设置颜色

id1.style.color='yellow'

文本设置大小

id1.style.fontSize='200px';

文本内边距设置

id1.style.padding='2em'

修改网页的布局

在这里插入图片描述

20. 删除DOM节点

先获取父节点,再通过父节点删除自己
在这里插入图片描述

标准删除节点

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

<script !src="">

var self=document.getElementById('p1');
var father=p1.parentElement;
father.removeChild(self);

</script>

方式二
需要注意!!————删除是一个动态的过程

father.removeChild(father.children[0]);
father.removeChild(father.children[1]);
father.removeChild(father.children[2]);

删除多个节点的时候,children是在时刻变化的, 删除节点的时候一定要注意~

21.创建和插入DOM节点

假设节点为空,那么可以通过innerHTML增加元素,但是已经存在的情况下就不可以这么操作,增加元素会覆盖原来所有的元素
所以有元素的时候需要添加

追加操作

<p id="js">JS</p>
<div id="list">
    <p id="se">JAVASE</p>
    <p id="ee">JAVAEE</p>
    <p id="me">JAVAME</p>
</div>
<script !src="">
    var js = document.getElementById('js');
    var list = document.getElementById('list');


</script>



list.appendChild(js)
list.append(js)

创建节点(append、追加节点)

    var newP=document.createElement('p');
    newP.id='newP';
    newP.innerText='Hello World';

    list.append(newP);

创建节点(通用、常用、重要)

   var myscript = document.createElement('script');
    myscript.setAttribute('type','text/javascript');//括号里面一个是key值,一个是value值
    myscript.setAttribute('id','newP');

22.获取和设置表单的值

获取表单输入的值
修改表单输入的值

<form action="post">
    <span>用户名:</span>  <input type="text" id="username">

</form>

<script !src="">
    var inputtext = document.getElementById('username');
</script>

检查表单的输入内容

inputtext.value
'4564564'
inputtext.value='123123'
'123123'

检查单选框是否被选择

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

</form>

<script !src="">
    var inputtext = document.getElementById('username');
    var radioman = document.getElementById('boy');
    var radiowoman = document.getElementById('girl');
</script>
radiowoman.checked
true或者falese
radiowoman.check=true //单选框赋值

23.表单提交验证和前端密码的MD5加密(非常乱)

重点就是下载MD5,然后导入,接着用MD5方法转换input的输入值value,别的不用重点看,很乱。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>提交表单</title>
    <script  src="../resource/md5.js" type="text/javascript"></script>
</head>
<body>

<form action="#" method="post" onsubmit="aaa()">    <!--表单级别的绑定-->
<p>
    <span>用户名:</span>  <input type="text" id="username"  name="username" required>
<!--    required 属性规定必需在提交之前填写输入字段。-->
</p>
<p>
    <span>密码:</span>  <input type="password" id="password" id="password" required>
</p>

<!--    <input type="hidden" id="md5-password" name="password"> &lt;!&ndash;工作中这么做比较安全稳妥&ndash;&gt;-->

<!--    绑定事件 onclick被点击-->
<button type="button" onclick="aaa()">提交</button>
</form>


<script>
    function aaa(){
    var uname = document.getElementById('username');
    var pwd = document.getElementById('password');
    // var md5pwd = document.getElementById('md5-password');
    console.log(uname.value);
    console.log(pwd.value);

    //MD5算法
    pwd.value=hex_md5(pwd.value);
    console.log(pwd.value);

    //可以校验判断,true就是通过校验,false就是阻止提交
    return true;
    }

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

24.初识jQuery及公式

jQuery里面存在着大量的JS函数

选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>初始jQuery</title>
<!--    <script crossorigin="anonymous" integrity="sha512-n/4gHW3atM3QqRcbCn6ewmpxcLAHGaDjpEBu4xZd47N0W2oQ+6q7oc3PXstrJYXcbNU1OHdQ1T7pAP+gi5Yu8g==" src="https://lib.baomitu.com/jquery/3.6.0/jquery.js"></script>-->
    <script src="jquery-3.6.0.js"></script>

</head>
<body>
<!--公式:$(selector).action()-->
<a href="" id="test-jquery">点我</a>
<script>
    document.getElementById('id');
    // 选择器就是CSS选择器
    $('#test-jquery').click(function (){
        alert('hello jquery');
    })

</script>

</body>
</html>

25.jQuery选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery选择器</title>
</head>
<body>


<script>
    // 原生js,选择器少,麻烦不好记
    //标签
    document.getElementsByTagNameNS();
    //id
    document.getElementById();
    //类

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

</script>

</body>
</html>

26.jQuery事件

事件:键盘、鼠标、其他事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件</title>
    <script src="lib/jquery-3.6.0.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>
    //当网页元素加载之后,响应事件
    // $(document).ready(function (){
    //
    // })
    $(function (){
        $('#divMove').mousemove(function (e){
            $('#mouseMove').text('x'+e.pageX+'y'+e.pageY);
        })
    });


</script>





</body>
</html>

27.jQuery操作DOM元素

节点文本操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>操作DOM元素</title>
    <script src="lib/jquery-3.6.0.js"></script>
    <style>

    </style>


</head>
<body>

<ul id="text-ul">
    <li class="js">JavaScript</li>
    <li name="python">python</li>
    <li></li>
</ul>
<script !src="">

    //操作DOM,节点文本操作
    $('#text-ul li[name=python]').text();//获得值
    // $('#text-ul li[name=python]').text('123');//设置值
    $('#text-ul').html();
    // $('#text-ul').html('<strong>123</strong>');//设置值


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

</script>

</body>
</html>

css 的操作

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

元素的显示和隐藏

display:none

  $('#text-ul li[name=python]').show()
    $('#text-ul li[name=python]').hide()
举报

相关推荐

0 条评论