一.基础知识
1.安装使用
- 离线使用
从网上下载jQuery的JS文件,放到项目目录
使用时导入到需要使用的文件中(导入行内不能写代码)
1
<script type="text/javascript" src="../js/jquery-1.4.2.js"></script>
在线使用
1
<script type="text/javascript" src="地址"></script>
2.注意事项
优势
- 相对于js能更好的选择元素,修改css
- 当一个网站下载完以后,另一个网站可以复用
详细介绍:
- jQuery是一个用js写的js框架
- 选择器时jQuery的基础
创建新元素时命名为$(),或者jQuery()
3.对象转换
jQ对象和JS对象之间的方法不同互相使用
- js转换为jQuery:
1 | js转jq var jq = $(js); |
- jQuery转换为js:
1 | jq转js var js = jq[0]; |
4.区别/方法
jq代码 | js代码 |
---|---|
val() | value |
eq(n) | 遍历 |
each() | 循环遍历 |
load | onload |
5.遍历数组
jQuery方法调用
1
2
3
4var a = [1, 2, 3, 4];
$.each(a, function(key, val) {//以jQuery对象的方法调用,兼容性好;
console.log(a[key] + '下标为' + key + '值为' + val);
});对象转换调用
1
2
3
4//也可以用$(a)将a转化为jquery对象,然后以下列方式的形式调用
$(a).each(function(key,val){
console.log(a[key] + '下标为' + key + '值为' + val);
});遍历对象时
$(“img”).eq(0)=$(this)=$(val)
二.选择器(获取元素)
1.基本选择器
代码 | 选择器 |
---|---|
$(“*”) | 任意元素选择器 |
$(“标签名”) | 标签名选择器 |
$(“#id名”) | Id选择器 |
$(“.class名”) | class选择器 |
$(“标签名,#id,.class”) | 分组选择器 |
$(“标签名.class名”) | 元素选择器(标签名为XXX且class名为XXX) |
2.层级选择器
代码 | 选择器 |
---|---|
$(“div span”) | 匹配所有div下的span元素 包含所有后代 |
$(“div>span”) | 匹配所有div下的span子元素 |
$(“div+span”) | 匹配所有div后面的第一个弟弟元素 |
$(“div~span”) | 匹配所有div后面所有的span弟弟们元素 |
2.2层级方法
不包括自身/当选择器全部选择,然后查找兄弟元素,第一个不被选择
代码 | 方法 |
---|---|
$(“#abc”).siblings(“div”) | 匹配id为abc元素的所有兄弟元素 |
$(“#abc”).next(“div”) | 匹配id为abc元素的弟弟元素 |
$(“#abc”).nexAll() | 匹配id为abc元素的弟弟元素们 |
$(“#abc”).prev(“div”) | 匹配id为abc元素的哥哥元素 |
$(“#abc”).prevAll() | 匹配id为abc元素的哥哥元素们 |
3.过滤选择器
代码 | 选择器 | |
---|---|---|
$(“div:first”) | 匹配所有div元素中的第一个 | 存在单独方法 |
$(“div:last”) | 匹配所有div元素中的最后一个 | 存在单独方法 |
$(“div:even”) | 匹配所有div元素中的偶数个 | 从0开始 |
$(“div:odd”) | 匹配所有div元素中的奇数个 | 从0开始 |
$(“div:eq(n)”) | 匹配第n个div元素 | 存在单独方法 |
$(“div:lt(n)”) | 匹配所有下标小于n的所有div元素 | |
$(“div:gt(n)”) | 匹配所有下标大于n的所有div元素 | |
$(“div:not(.abc)”) | 匹配所有div中class值不等于abc的 |
3.3过滤方法
代码 | 实例 |
---|---|
$(“#abc”).filter(function(index,ele){index相关flag return true}) | 过滤return为 true的所有div元素 |
$(“#abc”).map(function(index,ele){index相关flag return ele}) | 过滤return为ele的div元素 |
$(“#abc”).find(“.class名”) | 匹配class为”class名”的所有div元素 |
$(“#abc”).not(“.class名”) | 匹配class不为”class名”的所有div元素 |
$(“#abc”).is(“.class名”) | 检查class为”class名”的所有div元素 |
$(“#abc”).slice(a,b) | 匹配[a,b)div元素,不写b时代表[a,+无限) |
$(“#abc”).has(p) | 匹配所有包含p子元素的div |
4.内容选择器
代码 | 选择器 |
---|---|
$(“div:has(p)”) | 匹配所有包含p子元素的div |
$(“div:empty”) | 匹配所有空的div |
$(“div:parent”) | 匹配所有非空的div |
$(“div:contains(‘abc’)”) | 匹配所有包含abc文本的div |
5.属性选择器
代码 | 选择器 |
---|---|
$(“div[id]”) | 匹配所有包含id属性的元素 |
$(“div[id=’d1’]”) | 匹配所有id等于d1的元素 |
$(“div[id!=’d1’]”) | 匹配所有id不等于d1的元素 |
6.可见选择器
代码 | 选择器 |
---|---|
$(“div:hidden”) | 匹配所有隐藏的div元素 |
$(“div:visible”) | 匹配所有显示的div元素 |
6.2隐藏显示相关的方法
代码 | 选择器 |
---|---|
$(“#abc”).hide(); | 隐藏 |
$(“#abc”).show(); | 显示 |
$(“#abc”).toggle(); | 隐藏显示切换 |
7.子元素选择器
代码 | 选择器 |
---|---|
$(“div:nth-child(n)”) | 匹配所有是div并且是第n个子元素 //从1开始 |
$(“div:first-child”) | 匹配所有是div并且是第一个子元素 |
$(“div:last-child”) | 匹配所有是div并且是最后一个子元素 |
8.表单选择器
代码 | 选择器 |
---|---|
$(“:input”) | 匹配form表单中所有的控件 |
$(“:password”) | 匹配所有密码框 |
$(“:radio”) | 匹配所有单选框 |
$(“:checkbox”) | 匹配所有多选框 |
$(“:checked”) | 匹配所有选中的单选、多选、下拉选 |
$(“input:checked”) | 匹配所有选中的单选和多选 |
$(“:selected”) | 匹配所有选中的下拉选 |
三.添加元素
创建元素
不立即生效,需要下面三个方法的协助
1
新元素 = $("<div id='xxx'>xxxxx</div>");
添加元素
1
2父元素.append(新元素); //添加到最后面
父元素.prepend(新元素); //添加到最前面插入元素
1
2兄弟元素.before(新元素);//插入到元素的前面
兄弟元素.after(新元素);//插入到元素的后面删除元素
1
被删除元素.remove();
四.写入元素
注意事项:
- js上这里赋值也是”=”,jq变成类似java正常情况;
- ()内不写代表取值;
- 以下内容跟js一样都添加新元素时删除之前的配置
- 创建的html新元素只能添加一遍,第二次添加的话不生效
- 可以将创建的新元素1添加到新元素2,然后将新元素2添加到文件中
文本相关
1
2元素.text("xxx"); //给元素添加文本内容
var str = 元素.text(); //获取元素的文本内容html相关
1
2元素.html("<h1>xxx</h1>"); //给元素添加html内容
var html = 元素.html(); //获取元素的html内容css样式相关
1
2
3元素.css("样式名称","值"); //给元素添加样式
元素.css({"css名称1":"值1","css名称2":"值2"}); //给元素添加多种样式
var x = 元素.css("样式名称"); //获取元素某个样式的值
属性相关
注意事项:
不删除之前的配置
attr和prop区别
attr prop 可以获取和添加固定属性和自定义标签 只能获取和添加固定属性 获取未设置属性返回undefined 获取未设置属性返回null 可以动态获取checked的值(true或false) 固定属性:已经html标签
自定义属性:自己定义的标签
1.attr
添加属性
1
元素.attr("属性名","属性值");
获取属性
1
var x = 元素.attr("属性名");
删除属性
1
var.Removeattr("属性名");
2.prop
添加属性
1
元素.prop("属性名","属性值");
获取属性
1
var x = 元素.prop("属性名");
删除属性
1
var.Removeprop("属性名");
3.class
添加class
- 相比较与attr可以分别设置而不用遍历
- 不删除之前的配置
1
2
3
4
5$("").addClass(function(index ele){
if(index相关flag){
return "数值";
}
})删除class
1
$("").removeClass("数值");
判断是否含有class
- 相比较与attr可以不写全class名
- 用于多class名
1
$("").hasClass("class名");
4.checked
checked或者true
五.Cookie
存入cookie
1
$.cookie(数据名, 数据值, {expire: 有效期为多少天});
使用cookie
1
$.cookie(数据名);
六.事件
事件 | 描述 | js |
---|---|---|
click() | onclick() |
最后更新: 2019年12月28日 02:18
原始链接: https://airbash.cn/2019/11/02/%E5%89%8D%E7%AB%AF/JQuery/