jQuery简介
1.版本兼容:
jq1.x兼容IE8这样的旧浏览器
2.x不兼容旧浏览器,支持ES6
3.x不兼容旧浏览器,支持ES6
2.Jq的缺点:js文件是在我们自己的服务器上的,用户离我们服务器近就访问速度快,反之不
3.什么是 cdn网络:就是jquery存在一个服务器时,它会分发到别的同一个公司放置在各地的服务器,当客户端需要jquery时会跟cdn要,cdn就会查找哪一个存有jquery的服务器离客户端最近
4.两种引入jquery的方式–>下载引入jq文件/使用cdnjs文件
5.在调用jquery原型对象里面的简化版函数之前,要先做什么?
创建jquery的子对象 如var btn=new jQuery(“…”);
这样btn元素就可以使用jQuery里面的的简化版函数了,比如btn.click, 但是在jQuery
中简化后onclick函数的名字是click, innerHTML的名字是叫html
6.jquery子对象怎么知道自己要操作哪个dom元素
当new.jQuery(“选择器”)时,可传入任意一个css选择器
New jQuery()做的两件事:
1)和普通new一样,创建子对象,继承父对象,添加自有属性
2)自动用传入的选择器去dom树上查找符合条件的dom元素对象,保存进jQuery子对象
7.简化过程:new jQuery()–>jQuery()–>
(
)
8.
如
果
j
Q
u
e
r
y
的
对
象
和
D
O
M
元
素
对
象
采
用
了
相
同
的
变
量
名
,
要
怎
么
区
分
−
−
>
j
Q
u
e
r
y
的
对
象
命
名
规
则
前
面
要
加
() 8.如果jQuery的对象和DOM元素对象采用了相同的变量名,要怎么区分-->jQuery的对象命名规则前面要加
()8.如果jQuery的对象和DOM元素对象采用了相同的变量名,要怎么区分−−>jQuery的对象命名规则前面要加
9.用jQuery绑定的事件this指向的是谁
例子:
b
t
n
.
c
l
i
c
k
(
f
u
n
c
t
i
o
n
(
)
)
−
−
>
用
j
Q
u
e
r
y
绑
定
事
件
的
按
钮
−
−
>
b
u
t
t
o
n
.
o
n
c
l
i
c
k
=
f
u
n
c
t
i
o
n
(
)
−
−
>
用
D
O
M
绑
定
事
件
的
按
钮
由
于
这
两
个
是
等
价
的
,
所
以
用
j
Q
u
e
r
y
绑
定
事
件
的
元
素
t
h
i
s
指
向
的
仍
然
是
触
发
这
个
事
件
的
元
素
对
象
,
即
t
h
i
s
−
−
>
D
O
M
但
是
这
又
带
来
一
个
问
题
,
那
就
是
j
Q
u
e
r
y
不
能
继
续
使
用
简
化
版
函
数
10.
t
h
i
s
指
向
的
是
D
O
M
,
t
h
i
s
不
能
继
续
使
用
j
Q
u
e
r
y
的
简
化
版
函
数
怎
么
办
j
Q
u
e
r
y
构
造
函
数
除
了
支
持
选
择
器
查
找
,
也
支
持
直
接
把
D
O
M
元
素
放
入
j
Q
u
e
r
y
子
对
象
如
果
一
个
D
O
M
元
素
也
想
用
j
Q
u
e
r
y
函
数
,
可
以
用
btn.click(function(){})-->用jQuery绑定事件的按钮 -->button.οnclick=function(){}-->用DOM绑定事件的按钮 由于这两个是等价的,所以用jQuery绑定事件的元素this指向的仍然是触发这个事件的元素对象,即this-->DOM但是这又带来一个问题,那就是jQuery不能继续使用简化版函数 10.this指向的是DOM,this不能继续使用jQuery的简化版函数怎么办 jQuery构造函数除了支持选择器查找,也支持直接把DOM元素放入jQuery子对象 如果一个DOM元素也想用jQuery函数,可以用
btn.click(function())−−>用jQuery绑定事件的按钮−−>button.onclick=function()−−>用DOM绑定事件的按钮由于这两个是等价的,所以用jQuery绑定事件的元素this指向的仍然是触发这个事件的元素对象,即this−−>DOM但是这又带来一个问题,那就是jQuery不能继续使用简化版函数10.this指向的是DOM,this不能继续使用jQuery的简化版函数怎么办jQuery构造函数除了支持选择器查找,也支持直接把DOM元素放入jQuery子对象如果一个DOM元素也想用jQuery函数,可以用(DOM元素)包裹下就变成jQuery家的函数
用DOM修改元素
<body>
<h1>jQuery/$工厂函数</h1>
<button id="btn1">click me(0)</button>
<script src="jquery-3.6.0.min.js"></script>
<script>
//DOM4步
//1.查找触发事件的元素
var btn=document.getElementById("btn1");
//2.绑定事件处理函数
btn.onclick=function(){
//3.查找要修改的元素-->this.innerHTML
//4.修改元素
/*
4.1取出数量-->slice(9,-1)
4.2将取出来的数量转为整数-->parseInt
4.3将数量+1-->n++
4.4将新数量拼到()中,放回当前按钮的内容
*/
var n=parseInt(this.innerHTML.slice(9,-1));
n++;
this.innerHTML=`click me(${n})`;
}
</script>
</body>
用jQuery修改元素
<body>
<h1>jQuery/$工厂函数</h1>
<h1>用jq写点击按钮数字变化</h1>
<button id="btn1">click me(0)</button>
<script src="jquery-3.6.0.min.js"></script>
<script>
//获取元素
var $btn=$("#btn1");
$btn.click(function(){
//由于this是指向DOM元素的,this要用jQuery的简化版函数只能用$(this)这种方式
var $this=$(this);
/*
问题:为什么不能在jQuery中使用DOM元素,因为使用框架和原生一起写容易混乱
*/
var n=parseInt($this.html().slice(9,-1));
n++;
$this.html(`click me(${n})`);
});
</script>
</body>