jQuery自学教程(二)——选择器

选择器引擎

jQuery的核心就是选择器引擎了。它集成了css的语法,可以对DOM元素的标签名、属性名、状态等进行准确快速的选择,且不必担心兼容性。

首先先补充一点css选择器的基础,简单介绍。

开发者的规定是一个页面不允许重复id,而如果你这样做了,用css的id选择器并不会报错,依旧会将所有符合要求的id选择出来,这一点就不够优化了。使用jQuery选择,则只会选择第一个id符合要求的元素,可以避免这个问题。

jQuery选择器和css选择器很类似,css找到元素之后是添加的单一的样式,而jQuery则是添加的动作行为。css可能带来的不兼容的问题jQuery往往可以解决。

而且jQuery有容错的功能,使用jQuery选择器  $('#id').css......如果id对应的元素不存在,不会报错,而如果用css选择器则会报错。

一、基本选择器

包括id选择器,class选择器,标签名选择器,通配符选择器(*),群组选择器。

前面三种就不再介绍了。

通配符选择器(*),选择全部的节点。但是非常不建议在全局下使用“*”,因为会极大的消耗资源,往往建议在和其他选择器的搭配下在局部使用,比如:$('ul li *').css.......简化内容。

注意还有一种选择器,如下$('p#id'),$(div.class)等,表示具有某id或者某class的元素标签,前面有特定的元素标签选定符。

另多class选择器,如果某个标签具有多个class,则可以利用$('.class1.class2')来选择具有两个class的元素标签。


ps:选择器标签越短越准确越好,不必追求长度。长度越长,解析耗时越长。

二、层次选择器

 

包括的几个选择器如上图。

后代选择器:选择所有符合条件的后代,不仅限于子代;

子选择器:仅仅在子代中寻找符合条件的。jQuery中提供了children方法(eg:$('#id').children('p').css..... 在children内提供一个简单选择器)。

next选择器:筛选出特定节点的后一个符合条件的同级节点。jQuery中提供了next方法(eg:$('#id').next('p').css..... 在next内提供一个简单选择器

nextAll选择器:选择器筛选出特定节点的后所有符合条件的同级节点。jQuery中提供了nextAll方法(eg:$('#id').nextAll('p').css..... 在nextAll内提供一个简单选择器。注意,jQuery也提供了sibling方法,用法相同,只是获得了所有符合条件的同辈节点,不论先后)。

Ps:如果在children,next,nextAll,nextUntil(向下同级元素遇到指定标签则停止),prev,prevAll,prevUn

til(向上同级元素遇到指定标签则停止)等方法中如果不传参数的话,则默认的是“*”,存在浪费的情况,影响运行

效率,因此不建议这样做。

Ps:使用上面说的各种方法,速度比高级过滤器要快,因为不需要解析字符串来处理,提高了处理速度。

三、属性选择器


需要注意的就是”!=“的css选择器在各种浏览器都不兼容,jQuery的这种方式可以兼容。

四、过滤选择器

1、基本过滤选择器

Ps:eq,gt,lt其中的index值可以使负数,表示从最后往前倒叙。最后一个是-1,依次倒退。

Pps:对应着上述过滤选择器,有first(),last(),not(),eq()方法,使用方法同过滤选择器。

2、内容过滤器


Ps:jQuery提供了如下几个方法 has(),parent(),parents(),parentUntil()方法。has的用法和效果和上述相同,但是后面几个不一样,类似于节点操

:parent()方法选择当前元素的父元素,parents()方法选择当前元素的父元素及其全部的祖先元素(如果不加限制会直到html),parentUntil(‘div’)方法

需要提供一个参数,选择当前元素的父元素直到给定标签为止。

3、可见性过滤器


Ps::hidden过滤器一般包含的内容为:css样式style为display:none,input表单类型为type="hidden"和 visibility:hidden的元素。

4、子元素过滤器

对比:first只返回单个元素,first-child是返回每个父元素的子元素;last只返回单个元素,last-child是返回每个父元素的子元素。nth-child中的参数可

以是索引值(从1开始),也可以是even,odd,3n,3n+1等。

5、其他方法

jQuery还提供了一些其他常用的方法,便于开发。


Ps: find(‘’)是对元素的子元素的筛查,而filter()是对元素自身进行筛查。

五、表单选择器

虽然可以使用常规选择器来对表单元素进行定位,但有时还是不能满足开发者灵活多变的需求,所以jQuery为表单提供了专门的选择器。



注意,这些选择器返回的都是集合元素,如果想获得某一个指定的元素,最好结合一下属性选择器。

六、表单过滤器


Ps:有时候空格会影响选择器的选择效果。!!!很重要!!!比如$('li:first-child')表示选择第一个li标签,如果

空一格的话$('ul li:first-child')则还包含了一个层次选择器。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值