jQuery是封装了js的一个前端框架,可以写更少的代码,做更多的事情
jQuery中的$是一个函数
为按钮添加点击响应函数
1.使用jQuery查询到标签对象
2.使用标签对象.click(function(){});
$ 是jQuery的一个核心函数,通过$可以选择元素,还可以去定义函数等等
通过$来声明jQuery中的文本就绪函数:
$(function{
})
原生js的文本就绪函数
Window.onload = function(){
}
通过相对路径引入jQuery控件
xxxxxxxxxx
21<!--引入jQuery控件-->
2<script src="../jQuery/jquery-1.7.2.js"></script>
xxxxxxxxxx
81//jQuery中的文本就绪函数
2$(function(){
3
4 let elementById = document.getElementById("id");
5
6 alert(elementById);
7
8})
通过jQuery的方式来选择html对象
jQuery中的选择器:
最基本的几种选择器:id选择器、class选择器、标签选择器
xxxxxxxxxx
101//通过jQuery中的id选择器来选择标签
2let inputEl = $("#id")
3
4//[object Object] 这种形式的对象是jQuery对象,不是dom对象
5alert(inputEl);
6
7//通过class选择器来选择标签对象
8let classEl = $(".class");
9
10alert(classEl);
通过jQuery选择器选择的对象是一个jQuery对象,并不是dom对象,但是在jQuery底层封装的是dom对象,jQuery对象的本质就是dom对象数组
xxxxxxxxxx
231//通过jQuery动态绑定的方式来绑定单击事件
2$(function (){
3
4 let clickEl = $("#click");
5
6 //绑定单击事件
7 clickEl.click(function (){
8
9 alert("通过jQuery的方式来注册单击事件")
10
11 })
12
13})
14
15-------------------------------------------------------
16
17let elementById = document.getElementById("click");
18
19elementById.onclick = function (){
20
21 alert("通过js的方式来注册单击事件")
22
23}
jQuery针对dom对象的所有属性都封装了对应的方法,dom对象中 onclick属性,jQuery中就封装了click()
注:jQuery对象只能调用jQuery提供的方法,不能调用dom中的属性,dom对象只能调用属性,不能调用方法
window.onload = function(){}
xxxxxxxxxx
281function test(){
2
3 let input = $("<input type='button' value='123456'>");
4
5 $("#body").append(input);
6
7}
8
9//定义一个文本就绪函数
10$(function (){
11
12 let jQueryObj = $(".text");
13
14 //[object Object] jQuery对象
15 alert(jQueryObj);
16
17 let domObj = document.getElementById("text");
18
19 //[object HTMLInputElement] dom对象
20 alert(domObj);
21
22 //将dom对象转成jQuery对象
23 let jQueryObj02 = $(domObj);
24
25 //[object Object] jQuery对象,获取jQuery对象的值
26 alert(jQueryObj02.val());
27
28})
Dom对象
jQuery对象
jQuery对象是dom对象的数组 + jQuery 提供的一系列功能函数
xxxxxxxxxx
311//通过属性过滤选择器选择所有被选中的多选框
2 function test01(){
3
4 let $hobby = $(".hobby:checked");
5
6 //遍历被选中的多选框
7 $hobby.each(function (){
8
9 //dom对象直接通过value属性取值
10 alert(this.value);
11
12 })
13
14 //遍历方法2,for循环遍历
15 for (let i = 0; i < $hobby.length; i++) {
16
17 //封装成jQuery对象后取值
18 alert($($hobby[i]).val());
19
20 }
21
22 //组合选择器
23 $("input,p.myClass").each(function (){
24
25 alert(this)
26
27 })
28
29 }
30
31
dom对象转化为jQuery对象
jQuery对象转换为dom对象
基本选择器
Tips:jQuery的id选择器只支持,单词、阿拉伯数字、下划线、中划线,其中单词,包括英文字母、汉字,但是控件id属于客户不可见内容,实际中开发人员是不用汉字作为id的, 这里不考虑
层级选择器
过滤选择器
内容过滤器
属性过滤器
xxxxxxxxxx
361/*属性过滤选择器*/
2$("[value]").each(function (){
3
4 alert(this.value)
5
6})
7
8/*匹配具有value属性并且value值等于1的元素*/
9$("[value=test1]").each(function (){
10
11 alert(this.value)
12
13})
14
15/*过滤value属性值以t开头的元素*/
16$("[value^=t]").each(function (){
17
18 alert(this.value)
19
20})
21
22
23/*过滤value属性值包含es的元素*/
24$("[value*=es]").each(function (){
25
26 alert(this.value)
27
28})
29
30/*复合属性选择器,选择value包含es,并且value以1结尾的元素*/
31$("[value*='es'][value$='1']").each(function (){
32
33 alert(this.value)
34
35})
36
表单过滤器
表单对象属性管理器
jQuery元素筛选
jQuery的属性操作
遍历jQuery对象
xxxxxxxxxx
291let hobbyEls = $(".hobby");
2
3alert(hobbyEls)
4
5for (let i = 0; i < hobbyEls.length; i++) {
6
7 //[object HTMLInputElement]
8 alert(hobbyEls[i]);
9
10}
11
12//jQuery中的遍历方法
13 hobbyEls.each(function (){
14
15 //this 是遍历时获取到的dom对象
16 //[object HTMLInputElement]
17 alert(this.value + " dom");
18
19 alert($(this).val() + " jQuery");
20
21 })
22
23 //标签选择器
24 $("input").each(function (){
25
26 alert(this);
27
28 })
29
属性过滤选择器
xxxxxxxxxx
231//通过属性过滤选择器选择所有被选中的多选框
2function test01(){
3
4 let $hobby = $(".hobby:checked");
5
6 //遍历被选中的多选框
7 $hobby.each(function (){
8
9 alert(this.value);
10
11 })
12
13
14}
15
16
17//通过属性值过滤标签
18$("[name = 'hobby']").each(function (){
19
20
21 alert(this)
22
23 })
动态注册方法
xxxxxxxxxx
431 //文本就绪函数
2 $(function (){
3
4 //全选
5 $("[value = '全选']").click(function (){
6
7 //遍历所有的多选框
8 $(".hobby").each(function (){
9
10 //将标签的checked设置为true
11 $(this).prop("checked",true)
12
13 })
14
15 })
16
17 //全不选
18 $("[value = '全不选']").click(function (){
19
20 //遍历所有的多选框
21 $(".hobby").each(function (){
22
23 //将标签的checked设置为false
24 $(this).prop("checked",false)
25
26 })
27
28 })
29
30 //反选
31 $("[value = '反选']").click(function (){
32
33 //遍历所有的多选框
34 $(".hobby").each(function (){
35
36 //将标签的checked设置为取非
37 $(this).prop("checked",!this.checked)
38
39 })
40
41 })
42
43 })
xxxxxxxxxx
691$(function (){
2
3 let u = new RegExp("^[A-z][A-z0-9-_]{3,16}$");
4
5 let ps = new RegExp("[A-z0-9-_+*?!]{3,16}$");
6
7
8 /*jQuery*/
9 let usernameEl = $("#username");
10
11 usernameEl.blur(function (){
12
13 let username = $("#username").val();
14
15 if (u.test(username)){
16
17 $("#usernameSpan").text("用户名合法");
18
19 $("#usernameSpan").prop("style","color:green");
20
21
22 }else {
23
24 $("#usernameSpan").text("用户名不合法");
25
26 $("#usernameSpan").prop("style","color:red");
27
28 }
29
30 if (username.length == 0){
31
32 $("#usernameSpan").text("");
33
34 }
35
36 })
37
38 /*js原生*/
39 let passwordEl = document.getElementById("password");
40
41 passwordEl.onblur = function (){
42
43 let password = passwordEl.value;
44
45 let passwordSpan = document.getElementById("passwordSpan");
46
47 if (ps.test(password)){
48
49 passwordSpan.innerText = "密码合法";
50
51 passwordSpan.style = "color:green";
52
53 }else {
54
55 passwordSpan.innerText = "密码不合法";
56
57 passwordSpan.style = "color:red";
58
59 }
60
61 if (password.length == 0){
62
63 passwordSpan.innerText = "";
64
65 }
66
67 }
68
69})
内部插入:
a.appendTo(b)
把a插入到b子元素末尾,成为最后一个子元素prependTo() a.prependTo(b)
把a插到b所有子元素前面,成为第一个子元素xxxxxxxxxx
21$("body").append("<input type='button' value='123456'>")
2$("<input type='button' value='123456'>").appendTo($("span"));
外部插入:
insertAfter() a.insertAfter(b)
insertBefore() a.insertBefore(b)
替换:
replaceWith() a.replaceWith(b)
用b替换掉a
replaceAl() a.replaceAll(b)
用a替换掉所有b
删除:
remove() a.remove();
删除a标签
empty() a.empty();
清空a标签里的内容
xxxxxxxxxx
21$("a").remove();
2$("a").empty();