前端知识之jQuery
2006年1月发布的1.0版本
目前在市场上, 1.x , 2.x, 3.x .
功能的完善在1.x,
2.x的时候是属于删除旧代码,去除对于旧的浏览器兼容代码
3.x的时候增加es的新特性以及调整核心代码的结构
核心: write less, do more
下载: https://jquery.com/download/
所有版本的jQuery: https://code.jquery.com/
手册
在线手册: https://www.jq22.com/chm/jquery/index.html
离线手册:
获取元素
jQuery提供了大量让开发者获取页面元素的方法.都是通过$()
函数来完成的.返回值都是一个jQuery对象,也叫jQuery集合.是一个伪数组对象.
基本
#id # id选择符
element # 元素选择符
.class # class选择符
selector1, selector2, selectorN # 同时获取多个元素的选择符
?
层级
ancestor descendant # 包含选择符
parent > child # 父子选择符
prev + next # 下一个兄弟选择符
prev ~ siblings # 兄弟选择符
基本
:first # 从已经获取的元素集合中提取第一个元素
:even # 从已经获取的元素集合中提取下标为偶数的元素
:odd # 从已经获取的元素集合中提取下标为奇数的元素
:eq(index) # 从已经获取的元素集合中提取指定下标index对应的元素
:gt(index) # 从已经获取的元素集合中提取下标大于index对应的元素
:last # 从已经获取的元素集合中提取最后一个元素
:lt(index) # 从已经获取的元素集合中提取下标小于index对应的元素
内容
:has(selector) # 从已经获取的元素集合中提取拥有指定选择符的元素
属性
[attribute=value] # 获取拥有指定数据attribute,并且置为value的元素
子元素
:first-child # 从已经获取的所有元素中提取他们的第一个子元素
:last-child # 从已经获取的所有元素中提取他们的最后一个子元素
:nth-child # 从已经获取的所有元素中提取他们的指定下标的子元素
?
表单对象属性
:checked # 提取已经设置了默认值的单选框提取出来
jQuery对象和dom对象
上面$()函数的返回值都是jQuery对象来的.这是一个伪数组 .所以这个对象具有jQuery内置的功能.可以直接调用jQuery提供的方法.但是不能直接操作原来js提供的dom方法.
例如:
总结:
1. jQuery对象打印的时候都会附带jQuery单词,而dom对象打印的时候往往是标签效果.
2. jQuery对象可以直接调用jQuery提供方法和属性,不能直接调用js原生提供的dom方法和属性.
$("选择符").html() # 可以修改内容
$("选择符").innerHTML = "" # 没有效果!!!
dom对象是无法使用jQuery提供的方法和属性,如果一定要调用,则需要把dom对象转换成jQuery对象才可以使用
3. jQuery可以通过下标获取内部的dom对象
$("li")[0] ===> <li>一个文本</li>
4. dom对象转换成jQuery对象
var list = document.getElementsByClassName("list");
$(list) => jQuery对象
操作内容
$("选择符").html() # 读取指定元素的内容,如果$()函数获取了有多个元素,则提取第一个元素
$("选择符").html(内容) # 修改内容,如果$()函数获取了多个元素, 则批量修改内容
?
$("选择符").text() # 效果同上,但是获取的内容是纯文本,不包含html代码
$("选择符").text(内容) # 效果同上,但是修改的内容中如果有html文本,在直接转成实体字符,而不是html代码
?
代码:
操作属性
读取属性值
$("选择符").attr("属性名"); // 获取非表单元素的属性值,只会提取第一个元素的属性值
$("选择符").prop("属性名"); // 表单元素的属性,只会提取第一个元素的属性值
?
操作属性
$("选择符").attr("属性名","属性值"); // 修改非表单元素的属性值,如果元素有多个,则全部修改
$("选择符").prop("属性名","属性值"); // 修改表单元素的属性值,如果元素有多个,则全部修改
$("选择符").attr("属性名","属性值").attr("属性名","属性值").attr().....
$("选择符").prop("属性名","属性值").prop("属性名","属性值").prop().....
$("选择符").attr({‘属性名1‘:‘属性值1‘,‘属性名2‘:‘属性值2‘,.....})
$("选择符").prop({‘属性名1‘:‘属性值1‘,‘属性名2‘:‘属性值2‘,.....})
?
特殊用法, 类似上面的内容操作,参数也可以使用一个匿名函数
$("选择符").attr("属性名",function(){
// 其他操作代码
return "新的属性值";
});
实现同一个对象,不断使用小圆点调用多个方法的关键,就是jQuery内部实现了链式调用.