jQuery基础(3)

       今天总结一下jQuery筛选中的过滤、查找以及串联。

一、jQuery筛选中的过滤

eq(index|-index):获取子元素里面的其中某一个,根据索引来获取。

$("ul>li").eq(0);//获取子元素中索引为0的元素

first():获取第一个子元素

$("ul>li").first();

last():获取最后一个子元素

$("ul>li").last());

hasClass(class):根据元素的类名称来进行过滤的,参数是class名称。

$("ul>li").eq(2).hasClass("box");//用来判断ul下的子元素索引为2的li是否具有.box类名称,返回值为true/false。

filter(expr|obj|ele|fn):也是过滤筛选的函数。

$("ul>li").filter(".box");//判断ul下的子元素li是否具有.box类名称

$("ul>li").filter(function (index,ele){
}//index是索引值,ele是js dom对象,所以要转成jQuery对象再进行后续过滤操作

is(expr|obj|ele|fn):判断当前元素是什么。

$("ul>li").is($(".box"));//判断ul下的子元素li是否为带.box类名称的元素。

var ishas=$("ul>li").is(function (index,ele){
    console.log(index, ele);
    if($(ele).hasClass("box"))
    {
        console.log("找到了");
        return $(ele);
    }
});
console.log(ishas);//这是回调函数的写法,要注意参数ele的对象类型转换

map(callback):将数组映射为一个新的集合,也可以把 map映射当元素的遍历来使用。

var newdom=$("ul>li").map(function (index,ele){
    console.log(index, ele);
    return $(ele).html();
});
newdom.get();//映射完成之后,转化为array。

has(expr|ele):过滤元素,把当前需要的过滤出来,不需要的去除。(指的是子父关系,保留的是父)

$("ul>li").has(".child");//保留子元素中带有.child类的父元素

not(expr|ele|fn):从匹配元素的集合中删除与指定表达式匹配的元素。

$("ul>li").not($(".box"));//删除带.box类名称的元素

slice(start,[end]):选取一个匹配的子集。

$("ul>li").slice(0, 2);//取小不取大,截取。

二、jQuery筛选中的查找
只总结常用的几个。

children([expr]):获取子元素的,获取所有的子集元素(直接子集)。

$(".menu").children(".box");//参数也可以写成简单过滤

find(e|o|e):搜索所有与指定表达式匹配的元素。

$(".menu").find(".box");//expr
$(".menu").find($(".box"));//jquery对象
$(".menu").find($(".box").get(0));//ele

next([expr]):获取当前匹配元素的下一个。

$(".menu").find(".box").next();//.box后的第一个元素
$(".menu").find(".box").next(".fli");//.box后的第一个.fli元素

nextAll([expr]):获取当前匹配元素之后的所有元素。

$(".menu").find(".box").nextAll();//.box后的所有元素
$(".menu").find(".box").nextAll(".fli");//.box后的所有.fli元素

offsetParent():父级元素获取,该方法返回的父元素是定位的,即找到第一个被定位的父节点。

$(".childmenu").offsetParent();

parent([expr]):获取直接父元素。

$(".childmenu").parent();//获取.childmenu的直接父元素

parents([expr]):取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。

$(".childmenu").parents(".menu");

prev([expr]):匹配之前的一个元素。

$(".box").prev();//同级元素前一个

prevAll([expr]):匹配之前的所有元素。

$(".box").prevAll("p");//过滤之前所有的同级元素p

siblings([expr]):获取同胞兄弟元素。

$(".box").siblings();//不带参数,指获取所有的同胞兄弟。

$(".box").siblings("p");//也可以带过滤元素

$(".box").siblings(".menu>li:nth-of-type(1)");//过滤表达式也可以

三、jQuery筛选中的串联

add(e|e|h|o[,c]):给jquery对象添加新的对象。

$("ul>li").add($("p"));//添加jQuery对象p

$("ul>li").add("p");//添加JS对象p

$("ul>li").add(".p1");//添加类.p

addBack():添加堆栈中元素集合到当前集合,一个选择性的过滤选择器。

$("ul>li").eq(1).nextAll().addBack());//索引为1之后所有的li

contents():获取当前元素的所有节点,包含文本。

$("ul").contents();

end():回到上一次破坏性修改。

$("ul").find(".box").end();
$("ul").find("li").slice(0, 3).end();//破坏性修改

四、总结
        jQuery的筛选里大多还是这些功能性语句的运用,要注意每个函数里参数的设置和所代表的意义,这样就可以筛选出自己想要的dom元素,从而进行一系列的操作,来完成一些功能和效果。

发布了29 篇原创文章 · 获赞 1 · 访问量 571

猜你喜欢

转载自blog.csdn.net/Always_Love/article/details/104353504
今日推荐