0

0

概述jQuery的元素筛选

高洛峰

高洛峰

发布时间:2016-12-05 15:15:34

|

1454人浏览过

|

来源于php中文网

原创

1、eq()    筛选指定索引号的元素
2、first()  筛选出第一个匹配的元素
3、last()   筛选出最后一个匹配的元素
4、hasclass()  检查匹配的元素是否含有指定的类
5、filter()  筛选出与指定表达式匹配的元素集合
6、is()    检查元素是否参数里能匹配上的
7、map()
8、has()  筛选出包含指定子元素的元素
9、not()  排除能够被参数中匹配的元素
10、slice()    从指定索引开始,截取指定个数的元素
11、children()  筛选获取指定元素的资源
12、closest()   从当前元素开始,返回最先匹配到的符合条件的父元素
13、find()    从指定元素中查找子元素
14、next()     获取指定元素的下一个兄弟元素
15、nextall()   获取其后的所有兄弟元素
16、nextuntil()  获取其后的元素,直到参数能匹配上的为止,不包括结束条件那个
17、offsetposition()  返回第一个用于定位的祖先元素,即查找祖先元素中position为relative或absolute的元素。
18、parent()   获取指定元素的直接父元素
19、parents()   获取指定元素的所有祖先元素,一直到


20、parentsuntil()  获取指定元素的祖先元素,知道参数里能匹配到的为止
21、prev()    获取指定元素的前一个兄弟元素
22、prevall()   获取指定元素前面的所有兄弟元素
23、prevuntil()   获取指定元素前面的所有兄弟元素,直到参数里的条件能够匹配到的。 注意参数条件本身不会被匹配
24、siblings()   获取指定元素的兄弟元素,不分前后
25、add()    将选中的元素添加到jquery对象集合中
26、andself()  将自身加到选中的jquery集合中,以方便一次性操作
27、end()     将改变当前选择器选中的操作回退为上一个状态。
28、contents  未明白

************************* 筛选 ************************************

一、eq()  筛选指定索引号的元素

  语法:eq(index|-index)  索引号从0开始,若为负值,则从最后一个开始倒数,最后一个从-1开始

$("p").eq(1);  //如果选择器改为 $("p").eq(-1),则我是第四个P会被选中
  
  

我是第一个P

  

我是第二个P

  //会被选中,索引值为1   

我是第三个P

  

我是第四个P

 

 

   

二、first()  筛选出第一个匹配的元素

  语法:first()  此方法没有参数

$("p").first();  
  

我是第一个P

  //我的索引值是0,我是第一个,我会被选中   

我是第二个P

  

我是第三个P

  

我是第四个P

 

   

 三、last()  筛选出最后一个匹配的元素

   语法:last()  此方法没有参数

$("p").last();   
  

我是第一个P

  

我是第二个P

  

我是第三个P

  

我是第四个P

//我是最后一个,我会被选中
 

   

四、hasClass()  检查匹配的元素是否含有指定的类

  语法:hasClass(class)  class为类别名  //返回布尔值

if($("p").hasClass("p2"))
 {
   alert("我里面含有class=p2的元素");  //会弹出,p里的确存在class="p2"的元素
 }
 
   

我是第一个P

   

我是第二个P

   

我是第三个P

   

我是第四个P

 

 

   

 五、filter()  筛选出与指定表达式匹配的元素集合

  语法:filter(expr|obj|ele|fn)  expr:匹配表达式|obj:jQuery对象,用于匹配现有元素 | DOM:用于匹配的DOM元素 | function返回值作为匹配条件

$("p").filter(".p2");
  

我是第一个P

  

我是第二个P

  //我会被选中,我的class="p2"   

我是第三个P

  

我是第四个P

 

 

   

 六、is()    检查元素是否参数里能匹配上的

  语法:is(expr|obj|ele|fn)  expr:匹配表达式|obj:jQuery对象,用于匹配现有元素 | DOM:用于匹配的DOM元素 | function返回值作为匹配条件

$($("p").first().is(".p2"))
{
  alert("不会弹出,因为第一个P的class不等于p2"); 
}
  

我是第一个P

  

我是第二个P

  //我会被选中,我的class="p2"   

我是第三个P

  

我是第四个P

 

   

七、map()

八、has()  筛选出包含指定子元素的元素

  语法:has(expr|ele)  expr:选择表达式 | DOM元素选择

$("div").has("p");
                 //本div会被选中,因为该div含有p子元素   

我是第一个P

  

我是第二个P

  

我是第三个P

  

我是第四个P

  我是一个span

   

九、not()  排除能够被参数中匹配的元素

   语法:not(expr|ele|fn)  expr:选择表达式 | DOM元素选择 | fn的作用还不清楚

$("p").not(".p2");
  

我是第一个P

        //会被选中,没有class=p2   

我是第二个P

  //不会被选中,因为有class=p2被not(".p2")排除了   

我是第三个P

        //会被选中,没有class=p2   

我是第四个P

        //会被选中,没有class=p2

 

   

 十、slice()  从指定索引开始,截取指定个数的元素

   语法:slice(start, [end])   start位置, end可选,结束位置,不包含结束位置那个。如果不指定,则匹配到最后一个。

$("p").slice(1,3)
  

我是第一个P

        //不会被选中,我索引为0   

我是第二个P

  //会被选中,我索引为1   

我是第三个P

        //会被选中,我索引为2   

我是第四个P

        //不会被选中,虽然我的索引为3,但是不包括我

   

********************** 筛选 *********************************

十一、children()  筛选获取指定元素的资源

   语法:children(expr);  获取指定元素的资源,expr为子元素筛选条件

$("div").children(".p2");
 
  

我是第一个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2   

我是第二个P

  //会被选中,我既是p的子元素,又有class=p2   

我是第三个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2   

我是第四个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2

   

 十二、closest()  从当前元素开始,返回最先匹配到的符合条件的父元素

$("span").closest("p","div");
                   //不会被选中,被P抢了先机   

我是第一个P            //P会被选中,因为P符合条件,而且是最先匹配到的,虽然div也符合条件了,但是div不是最先匹配到的。因此div不会被选中。     我是P里的span   

 

   

十三、find()    从指定元素中查找子元素

NexChatGPT
NexChatGPT

火爆全网的IDEA插件,支持IDEA全家桶

下载

   语法:find(expr|obj|ele)  expr:匹配表达式 | obj用于匹配的jQuery对象 | DOM元素

$("div").find(".p2");    
  

我是第一个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2   

我是第二个P

  //会被选中,我既是p的子元素,又有class=p2   

我是第三个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2   

我是第四个P

        //不会被选中,虽然我是div的子元素,但是我没class=p2
 

   

十四、next()    获取指定元素的下一个兄弟元素

   语法:next(expr)  expr:可选,筛选条件,如果下一个兄弟元素不符合改条件,则返回空。

$(".p2").next();    //如果筛选改为$(".p2").next(".p4")那选中的是哪个呢?答案是:没选中任何元素,因为虽然有个class=p4的P,但它不是.p2的下一个。      
  

我是第一个P

           

我是第二个P

    

我是第三个P

        //我是.p2的next   

我是第四个P

 

   

十五、nextAll()    获取其后的所有兄弟元素

    语法:nextAll(expr)  expr:可选,筛选条件,获取其后符合expr条件的所有兄弟元素

$(".p2").nextAll();  //如果筛选条件改为 $(".p2").nextAll(".p4");  则只有我是第四个P会被选中
  

我是第一个P

           

我是第二个P

    

我是第三个P

        //会被选中,是.p2后面的兄弟元素   

我是第四个P

//会被选中,是.p2后面的兄弟元素
 

   

十六、nextUntil()  获取其后的元素,直到参数能匹配上的为止,不包括结束条件那个

   语法:nextUntil([expr|ele][,fil])  expr筛选表达式 | DOM元素筛选,注意不包括参数里的那一个

$(".p2").nextUntil(".p4");    //注意此方法并不会包括.p4
  

我是第一个P

           

我是第二个P

    

我是第三个P

        //会被选中,是.p2后面的兄弟元素   

我是第四个P

//不会被选中,我作为结束条件,但不包括我

   

十七、offsetPosition()  返回第一个用于定位的祖先元素,即查找祖先元素中position为relative或absolute的元素。

   语法:offsetPosition()  此方法没有参数  由于CSS的绝对定位的定位基准是相对最近的一个已定位元素,因此此方法的作用不言而喻。

$("span").offsetParent();
  //选中的是div,因此div是已定位元素。   

    我是一个span   

   

 十八、parent()    获取指定元素的直接父元素

    语法:parent(expr)  expr为筛选条件,如果直接父元素不符合条件,则不返回任何元素(无论它的祖先是否具有能与expr匹配的)

$("span").parent();
     

                //我是span的直接父元素,我会被匹配到     我是一个span   

   

十九、parents()      获取指定元素的所有祖先元素,一直到

   语法:parents(expr)  expr为筛选条件,如果某个祖先元素不符合expr则排除

$("span").parents();
  //我是span的祖先元素,我也会被匹配到.另外也会被匹配到     

                //我是span的直接父元素,我会被匹配到     我是一个span   

   

二十、parentsUntil()  获取指定元素的祖先元素,知道参数里能匹配到的为止

   语法:parentsUntil(expr)  expr为停止参数,一直匹配到expr为止,同时参数的条件是不会被匹配中的。

$("span").parentsUntil("div");
  //我是span的祖先元素,但是我作为停止条件,我也不会被选中     

                //我是span的直接父元素,我会被选中     我是一个span   

   

 二十一、prev()    获取指定元素的前一个兄弟元素

    语法:prev(expr)    expr:可选。当上一个兄弟元素不符合参数中的条件时,不返回任何元素。

$(".p2").prev();    
  

我是第一个P

      //我会被选中,我是.p2的前一个元素。   

我是第二个P

    

我是第三个P

           

我是第四个P

   

二十二、prevAll()  获取指定元素前面的所有兄弟元素

    语法:prevAll(expr)  expr:可选,排除所有不能够被expr匹配上的元素

$(".p4").prevAll(".p2");    
  

我是第一个P

        //不会被选中,虽然我是.p4前面的兄弟元素,但是我没有class=p2   

我是第二个P

  //会被选中,我既是.p4前面的兄弟元素,而且我有class=p2   

我是第三个P

        //不会被选中,虽然我是.p4前面的兄弟元素,但是我没有class=p2   

我是第四个P

 

   

二十三、prevUntil()  获取指定元素前面的所有兄弟元素,直到参数里的条件能够匹配到的。 注意参数条件本身不会被匹配

    语法:prevUntil([expr|ele][,fil])  expr匹配表达式 | DOM元素匹配

$(".p4").prevUntil(".p2");    
  

我是第一个P

        //不会被选中,到p2就停止了   

我是第二个P

  //不会被选中,我是停止条件,不包括我   

我是第三个P

        //会被选中,我在.p2前,递归到我在到.p2   

我是第四个P

 //不会被选中,我自己怎么可能是我自己前面的呢?

   

/********************  串联 *******************************/

二十四、siblings()  获取指定元素的兄弟元素,不分前后

    语法:siblings(expr);  expr为筛选条件,不符合条件的不会选中

$(".p2").siblings();    
  

我是第一个P

        //会被选中,我是.p2的兄弟元素   

我是第二个P

  //不会被选中,我是自己   

我是第三个P

        //会被选中,我是.p2的兄弟元素   

我是第四个P

 //会被选中,我是.p2的兄弟元素

   

二十五、add()  将选中的元素添加到jQuery对象集合中

    add(expr|elements|html|jQueryObject)  expr:选择器表达式 | DOM表达式 | Html片段 | jQuery对象,将jQuery对象集合一起方便操作;

$(".p2").add("span").css("background-color","red");    
  

我是第一个P

           

我是第二个P

  //会变红   

我是第三个P

           

我是第四个P

 
我是一个span      //会变红

   

二十六、andSelf()  将自身加到选中的jQuery集合中,以方便一次性操作

    andSelf()  此方法无参数

$(".p2").nextAll().andSelf().css("background-color","red");
  

我是第一个P

           

我是第二个P

  //会变红,这就是andSelf()的效果   

我是第三个P

        //会变红   

我是第四个P

 //会变红

   

二十七、end()      将改变当前选择器选中的操作回退为上一个状态。

    end()   此方法没有参数

$(".p2").next().end().css("background-color","red");
  

我是第一个P

           

我是第二个P

  //会变红,这就end()的效果   

我是第三个P

        //不会变红,尽管next()方法之后选中的是这一个,但是由于被end()方法回退了因此是上一个。   

我是第四个P

   

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

15

2026.02.03

短剧入口地址汇总
短剧入口地址汇总

本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

24

2026.02.03

植物大战僵尸版本入口地址汇总
植物大战僵尸版本入口地址汇总

本专题整合了植物大战僵尸版本入口地址汇总,前往文章中寻找想要的答案。

14

2026.02.03

c语言中/相关合集
c语言中/相关合集

本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

2

2026.02.03

漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题
漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题

本专题围绕漫蛙漫画(Manwa / Manwa2)官网网页版入口进行整理,涵盖漫蛙漫画官方主页访问方式、网页版在线阅读入口、台版正版漫画浏览说明及基础使用指引,帮助用户快速进入漫蛙漫画官网,稳定在线阅读正版漫画内容,避免误入非官方页面。

12

2026.02.03

Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口
Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口

本专题汇总了俄罗斯知名搜索引擎 Yandex 的官网入口、免登录访问地址、中文登录方法与网页版使用指南,帮助用户稳定访问 Yandex 官网,并提供一站式入口汇总。无论是登录入口还是在线搜索,用户都能快速获取最新稳定的访问链接与使用指南。

109

2026.02.03

Java 设计模式与重构实践
Java 设计模式与重构实践

本专题专注讲解 Java 中常用的设计模式,包括单例模式、工厂模式、观察者模式、策略模式等,并结合代码重构实践,帮助学习者掌握 如何运用设计模式优化代码结构,提高代码的可读性、可维护性和扩展性。通过具体示例,展示设计模式如何解决实际开发中的复杂问题。

2

2026.02.03

C# 并发与异步编程
C# 并发与异步编程

本专题系统讲解 C# 异步编程与并发控制,重点介绍 async 和 await 关键字、Task 类、线程池管理、并发数据结构、死锁与线程安全问题。通过多个实战项目,帮助学习者掌握 如何在 C# 中编写高效的异步代码,提升应用的并发性能与响应速度。

2

2026.02.03

Python 强化学习与深度Q网络(DQN)
Python 强化学习与深度Q网络(DQN)

本专题深入讲解 Python 在强化学习(Reinforcement Learning)中的应用,重点介绍 深度Q网络(DQN) 及其实现方法,涵盖 Q-learning 算法、深度学习与神经网络的结合、环境模拟与奖励机制设计、探索与利用的平衡等。通过构建一个简单的游戏AI,帮助学习者掌握 如何使用 Python 训练智能体在动态环境中作出决策。

3

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery 教程
jQuery 教程

共42课时 | 5.4万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 10.2万人学习

tp6+adminlte搭建通用后台
tp6+adminlte搭建通用后台

共39课时 | 5.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号