首页 > 其他分享 >JQuery基础系统二:选择器

JQuery基础系统二:选择器

时间:2023-10-09 13:24:53浏览次数:38  
标签:JQuery jQuery 元素 系统 value 选取 选择器 CSS

选择器是jQuery的基础,在jQuery中,对事件处理、遍历DOM和Ajax操作都依赖于选择器

1. CSS选择器

1.1 CSS是一项出色的技术,它使得网页的结构和表现样式完全分离。利用CSS选择器可以轻松的对某个元素添加样式而不用改动HTML结构,只需要通过添加不同的CSS规则,就可以得到不同样式的网页

1.2 要使某个样式样式应用于HTML元素,首先需要找到该元素。在CSS中,执行这一任务的表现规则就是CSS选择器

1.3 常用CSS选择器

    标签选择器:p{color:red;}

    ID选择器:#myId{color:red;}

    类选择器:.myClass{color:red;}

    群组选择器:p,.myClass,td{color:red}

    后代选择器:#myParent a{}  选择myParent 后面的所有a标签

    通配选择器:*{} 以文档的所有元素作为选择符

    伪类选择器:

    子选择器:E>F

    临近选择器:E+F

    属性选择器:E[attr]

     注意:主流浏览器并非完全支持所有的选择器

1.4 将CSS应用到网页中的3种的方法

    行间样式表;内部样式表;外部样式表

2. jQuery选择器

jQuery选择器完全继承了CSS的规则。利用jQuery选择器,可以非常方便和快捷的找出特定的DOM元素,然后为他们添加相应的行为,而无需担心浏览器是否支持这一选择器。

jQuery选择器的写法与CSS选择器的写法非常相似,只是作用效果不同。CSS选择器是找到元素后为元素添加样式;jQuery选择器是找到元素后为其添加行为。并且,jQuery选择器中涉及操作CSS样式的部分比单纯的CSS功能更强大,以及拥有跨浏览器的兼容性

2.1 jQuery选择器的优势

简洁的写法

支持CSS1到CSS3选择器:使用CSS选择器时,需要考虑主浏览器是否支持某些选择器,而jQuery选择器有极好的兼容性

完善的处理机制:

注意:$(".tt")获取的永远是对象,即使网页上没有此元素,因此当使用jQuery检查网页中是否存在某个元素时,就不可以使用if( $(".tt") )判断,而是判断元素的长度是否大于0   if( $(".tt").length>0 )  或者转化成对象再判断 if( $(".tt")[0] )

2.2 jQuery选择器:基本选择器、层级选择器、过滤选择器、表单选择器

基本选择器:
$("#test"):选取id为test的元素(返回单个元素)

$(".test"):选取所有class是test的元素(返回集合元素)

$("p"):选取所有的<p>元素(返回集合元素)

$("*"):选择网页中的所有元素(返回集合元素)

$("p,#test,.test"):选择每一个选择器匹配到的元素集合
层次选择器:主要是获取后代元素、子元素、相邻元素和同辈元素等
$("div span"):选取div元素里的所有span(后代)元素

$("div>span"):选取div元素下的span(子)元素,$("div span")选取是后代元素

$("prev+next"):选取紧跟在prev后面的元素next(可以使用next()方法替代)

$("prev~sliblings"):选择prev元素之后的所有同胞元素(可以使用nextAll()替代)

注意:$("prev~div")只能选择prev元素后面的同辈div元素;而sliblings()方法与前后的位置无关,只要是同辈节点都可以匹配
过滤选择器:主要是通过特定的过滤规则筛选出所需的DOM元素,过滤器是冒号(:)开头。可以简单的分类为:基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤、表单对象属性过滤选择器
基本过滤选择器:
  :first  选取第一个元素

  :last  选取最后一个元素

  :no(selector)  去除所有与给定选择器匹配的元素

  :even  选取索引是偶数的所有元素 索引从0开始

  :odd  选取索引是奇数的所有元素 索引从0开始

  :eq(index)  选取索引等于index的元素

  :gt(index)  选取索引大于index的元素

  :lt(index)  选取索引小于index的元素

  :header 选取所有的标题元素,例如h1,h2,h3等

  :focus 选取当前获取焦点的元素

  :animated  选取当前正在执行动画的所有元素
内容过滤选择器:他的过滤规则主要体现在它所包含的子元素或文本内容上
  :contains(text)  获取含有文本内容为text的元素

  :empty  选取不包含子元素或文本内容为空的元素

  :parent  选取含有子元素或文本的元素

  :has(selector)  选取含有选择器所匹配的元素的元素  $("div:has(p)")选取含有p元素的所有div元素

  

可见性过滤选择器:是根据元素的可见和不可见状态来选择相应的选择器
  :hidden  选取所有不可见的元素(注:不仅包含样式属性display:none的元素,还包含type=hidden的元素和visibility:hidden的元素)

  :visible  选取所有可见的元素

  

属性过滤选择器:主要是根据元素的属性来获取相应的元素
    [attr]  选取拥有此属性的元素

  [attr=value]  选取属性的值为value的元素

  [attr!=value]  选取属性的值不是value的元素

  [attr^=value]  选取属性的值以value开头的元素

  [attr$=value]  选取属性的值以value结束的元素

  [attr*=value]  选取属性的值包含value的元素

  [attr|=value] 选取属性等于给定字符串或以该字符串为前缀的元素

  [attr~=value] 选取属性用空格分割的值中包含一个给定值得元素

  [attr1][attr2][attr3] 用属性选择器合并成一个符合选择器,满足多个条件。每选择一次,缩小一次范围  

标签:JQuery,jQuery,元素,系统,value,选取,选择器,CSS
From: https://www.cnblogs.com/songxia/p/17751487.html

相关文章

  • JQuery基础系统一:简介
    jQueryAPI中文文档:https://www.jquery123.com/jQueryMobile菜鸟教程:http://www.runoob.com/jquerymobile/jquerymobile-tutorial.html更多内容参考Github:https://github.com/summerSongXia/summerProject/tree/master/JQuery1.Javascript简介1.1JS的3个弊端:复杂的......
  • jquery之each遍历
    jQuery的each和原生的JavaScript方法forEach原生的JavaScript方法forEach是EcmaScript5提供的不兼容IE8jQuery的each由jQuery这个第三方库提供jQuery2以下的版本是兼容IE8的它的each方法主要用来遍历jQuery实例对象(伪数组)同时它也可以作为......
  • 全场景流量验证系统 | 京东物流技术团队
    本文介绍了一种基于线上流量实现对重构系统进行功能和性能验证的实践方案。针对线上流量如何拦截、如何录制、如何存储、如何回放以及如何发压均作了详细说明,为具有类似需求的读者提供了一种可供参考的思路。1业务背景随着百川项目的启动,中台需要对订单流量收口,将ECLP、各BP的接单......
  • 视频融合平台EasyCVR利用视频监控系统构建小区人员出入口管理方案
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • SpringBoot+RabbitMQ+Redis 开发一个秒杀系统,细节打满(附源码)
    一、简易版秒杀SeckillProject系统简介开发技术二、实现细节记录1、用户密码两次MD5加密2、分布式session维持会话3、异常统一处理4、页面缓存+对象缓存5、页面静态化6、内存标记+Redis预减库存+RabbitMQ异步处理7、解决超卖8、接口限流三、效果展......
  • 监控汇聚/视频监控系统EasyNVRAI智能分析网关:持刀检测算法场景汇总
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • 视频监控/监控汇聚系统EasyCVR网络监控设计思路
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • 全场景流量验证系统
    本文介绍了一种基于线上流量实现对重构系统进行功能和性能验证的实践方案。针对线上流量如何拦截、如何录制、如何存储、如何回放以及如何发压均作了详细说明,为具有类似需求的读者提供了一种可供参考的思路。1业务背景随着百川项目的启动,中台需要对订单流量收口,将ECLP、各BP的......
  • 视频监控/监控汇聚系统EasyCVR网络视频监控系统详细解决方案
    数字化技术在安防领域的广泛应用:无线网络通信技术和计算机技术的快速发展已经推动了数字化技术在安防领域的广泛应用,特别是在公安等重要执法部门。网络化的联网监控需求越来越大。传统视频监控系统的局限性:传统视频监控系统只能进行现场监视,并且报警信息传输简单,不能远距离传输视......
  • 图文结合丨Prometheus+Grafana+GreatSQL性能监控系统搭建指南(上)
    一、环境介绍本文环境,以及本文所采用数据库为GreatSQL8.0.32-24$cat/etc/system-releaseRedHatEnterpriseLinuxServerrelease7.9(Maipo)$uname-aLinuxgip3.10.0-1160.el7.x86_64#1SMPTueAug1814:50:17EDT2020x86_64x86_64x86_64GNU/Linux$ldd--......