一、查找
1.jQuery三大特性
1.一个函数两用
没给新值,默认执行获取操作
给了新值,变为执行修改操作
如: .html() //获取内容
.html(xxx) //修改内容为xxx
2.自带遍历
对jQuery对象调用一次简化版API,等效于对数组对象中每个元素都调用一次API
3.几乎每个jQuery都返回正在使用的jQuery对象本身
2.按选择器查找
$(...)支持所有css选择器
css中没有的,jquery添加的:
1.内容过滤
1.按包含的文本内容过滤
:contains(text) 查找内容中包含指定text文本的元素
2.按子元素特征过滤
:has(selector) 查找内容中包含符合selector要求的子元素的父元素
3.按是否包含内容来过滤
:empty 空元素
:parent 非空元素
2.可见性过滤
:hidden 只能选择两种情况的隐藏
display:none input type=hidden
:visible 是:hidden的反义
3.状态过滤
三大状态: :disabled :checked :selected
4.表单元素过滤
:input 选择所有四大类表单元素
input button textarea selected
:[type] 每种input都对应一种专门的选择器
包括: :text :password :checkbox :radio ...
当可以用css选择器时优先使用css选择器,因为效率高,jquery选择器都是用js程序模拟出来的
3.按节点间关系
父元素: .parent() => .parentNode
直接子元素: .children() => .children
查找父元素下符合条件的子元素:
.children(["selector"]) 只能查找直接子元素
.find("selector") 在所有后代中查找
第一个子元素: .children().first() => .firstElementChild
最后一个子元素: .children().last() => .lastElementChild
前一个兄弟: .prev() => .previousElementSibling
.prevAll() //前边所有的兄弟
后一个兄弟: .next() => .nextElementSibling
.nextAll() //后边所有的兄弟
除我之外,所有兄弟: .siblings()
二、修改(一个函数两用)
1.内容
.html() =>.innerHTML
.text() => .textContent
.val() => .value
2.属性
标准属性: .arr("属性名"[,值])
状态属性: .prop("状态属性"[,bool])
自定义扩展属性: .data("属性名"[,值])
3.样式
修改内联样式
1.仅修改一个css属性
.css("css属性名","值") => .style.css属性=值
2.批量修改多个css属性
.css({
css属性名:值,
... : ...
})
获取值
.css("css属性名") =>getComputedStyle()获得计算后的样式
4.用class批量修改样式
为元素追加一个class: $(...).addClass("class名")
为元素移除一个class: $(...).removeClass("class名")
判断是否包含一个class: $(...).hasClass("class名")
为元素切换一个class: $(...).toggleClass("class名")
if($(...).hasClass("class名"))
$(...).removeClass("class名")
else
$(...).addClass("class名")
补充:.is("selector") 判断当前元素是否符合selector的条件
5. .index()
1. var i=$("selector").index(jq对象/DOM对象)
查找右边的jq对象或DOM对象,在左边的结果集合中的下标位置
2. 如果在同一个父元素下找某个子元素的位置
var i=$("child").index();
三、添加、删除、替换、克隆
1.添加
1.用$()创建一个新元素: var $新元素=$("html片段")
2.将新元素添加到dom树:
$("parent").append($新元素)
.prepend($新元素)
$("child").before($新元素)
.after($新元素)
简化: $("parent").append/prepend("html片段")
$("child").before/after("HTML片段")
2.删除
$(...).remove()
3.替换
$("selector").replaceWith(jq对象|DOM对象)
4.克隆
克隆: var $clone_elem=$(...).clone()
注意: 默认浅克隆(仅克隆样式和属性, 不克隆行为)
深克隆(即克隆样式和属性,又克隆行为): $(...).clone(true)