关于jquery $.expr[':']

本文介绍了如何通过扩展jQuery.expr[':']对象来自定义jQuery选择器,实现根据元素特性进行筛选的功能,并提供了具体的代码示例。
学习JQuery时 遇到一组代码
jQuery.expr[':'].data = function(a, i, m){
...
};  

对这个$.expr[':'] 实在没搞懂是啥,四处搜寻了一下,找到一些相关解释:

If you need a reusable filter to target specific elements based on their characteristics, you can extend jQuery’s selector expressions under the jQuery.expr[':'] object; this is an alias for Sizzle.selectors.filters. Each new filter expression is defined as a property of this object。意思为:如果你需要一个可重用的过滤器来根据它们的特性来定位特定的元素,你可以在jQuery.expr [':']对象下扩展jQuery的选择器表达式;这是Sizzle.selectors.filters的别名。每个新的过滤器表达式都被定义为这个对象的属性。

实际上说白了就是自定义伪类选择器 类似于

jQuery.expr[':'].between = function(a, i, m){
 var tmp=m[3].split(".");
return tmp[0]-0<i&&i<tmp[1]-0;
};  

定义了一个between选择器。

另外,想要同时添加多个新选择器,最好使用jQuery的extend()方法

jQuery.extend(jQuery.expr[':'], {

       data1 : function(){

        

        },

      data2 : function(){

        

        },
  data3 : function(){

        

        },

}); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值