在许多情况下,jquery代码所做的事情变成了:生成jquery对象A,操作对jquery象A;更改为jquery对象B,操作jquery对象B;更改为jqueryC,操作jquery对象C......;
jquery的链式操作:
链式操作概述:生成一个jquery对象后,既要对它进行一次或多次的普通操作,同时还要对它进行更改操作。于是有必要把生成jquery对象储存在一个变量中,满足多次调用的需要。
例如:
$(function(){ $("div").click(function(){
$(this).addClass("highlight").children("ul").show().end()
.siblings().removeClass("highlight").children("ul").hide();
}) })
更改为后代元素的集合:
1.children()方法:是用来选择子元素的
children("选择器");//选贼子元素中,所有匹配选择器的直接子元素
children();选择父元素的所有直接子元素//并不是选中,是已经切换了
2.find()方法:是用来选择后代元素的
find("选择器");//选择后代元素中,所有匹配选择器的后代元素
find();//不选择原先元素任何后代元素//写不写都一样,什么都选不中
3.contents()方法:选择匹配元素文本块(节点)和子节点
--说明:包括空文本节点
更改为祖先元素的集合:
1.parent()方法:选择父元素
parent("选择器");//选择父元素中,所有匹配选择器的元素
parent();//选择所有父元素
2.parents()方法:选择祖先元素
parents("选择器");选择祖先元素中,所有匹配选择器的元素
parents();//选择所有祖先元素
3.parentsUntil()方法:祖先元素
parentUntil("选择器");//选择祖先元素,直到找到匹配选择器的元素,但不包括匹配元素
parentUntil();//选择所有祖先元素
4.offsetParent()方法:选择最近的祖先定位元素,且该元素的css属性display不能为none;所谓定位元素是指其css属性的position取值为relitive、absolute、fixed。如果祖先元素中没有合适的元素,则会选择<html>根元素。
5.closest("选择器")方法:选择器本身和其他祖先元素所有匹配选择器的元素。也即是说,先看看原先的元素是否匹配,否则会一层一层地向上找到最先匹配祖先元素。
更改为兄弟元素的集合
1.next()和prev()方法
next("选择器"),在原先元素后面的第一个兄弟元素中,选择匹配选择器的元素。next()或next("*"),会选取原先元素后面的第一个兄弟。
prev("选择器"),在原先元素前面的第一个兄弟元素中,选择匹配选择器的元素。prev()或prev("*"),会选取原先元素前面的第一个兄弟。
2.nextAll()、prevAll()和siblings()方法
nextAll("选择器"),在原先元素后面的兄弟元素中,选取匹配选择器的元素。nextAll()或nextAll("*"),会选取原先元素后面的所有兄弟。
prevAll("选择器"),在原先元素前面的兄弟元素中,选取匹配选择器的元素。prevAll()或prevAll("*"),会选取原先元素前面的所有兄弟。
siblings(“选择器”),在原先元素所有兄弟元素中,选取匹配选择器的元素。siblings()或siblings(“*”),会选取原先元素所有兄弟。
更改为更多元素的集合
1.add("选择器")方法,在原先元素的基础上添加选取匹配选择器的元素;
说明:$("选择器1").add("选择器2")选取的元素等同于$("选择器1","选择器2");相当于群组选择器;//给祖先元素用。
jquery筛选器
1.eq()、first()、last()方法
eq(index)、first()、last()
2.slice(start,[end])方法:筛选索引从start到(end-1)的元素
slice(2,5)//2,3,4
3.filter("选择器")方法:选择匹配选择器的元素
4.not("选择器")方法:选择不匹配选择器的元素
5.has("选择器")方法:选择匹配选择器的后代元素
end()为切换为前一个对象。