使用自定义选择器

jQuery允许我们在css选择器的基础上定义自定义选择器来让我们的代码更简洁;

下面是使用方法和参数说明:

 1 $.expr[‘:‘].mycustomselector= function(element, index, meta, stack){
 2     // element- DOM元素
 3     // index - 堆栈中当前遍历的索引值
 4     // meta - 关于你的选择器的数据元
 5     // stack - 用于遍历所有元素的堆栈
 6
 7     // 包含当前元素则返回true
 8     // 不包含当前元素则返回false
 9 };
10
11 // 自定义选择器的应用:
12 $(‘.someClasses:test‘).doSomething();

下面,我们来举个栗子(对,栗子就是这样举起来的);

我们通过使用自定义选择器来锁定含有”rel”属性的元素集:
html:

 1 <ul>
 2   <li>
 3     <a href="#">without rel</a>
 4   </li>
 5   <li>
 6     <a rel="somerel" href="#">with rel</a>
 7   </li>
 8   <li>
 9     <a rel="" href="#">without rel</a>
10   </li>
11   <li>
12     <a rel="nofollow" href="#">a link with rel</a>
13   </li>
14 </ul>

js:

 1 $.expr[‘:‘].withRel = function(element){
 2   var $this = $(element);
 3   //仅返回rel属性不为空的元素
 4   return ($this.attr(‘rel‘) != ‘‘);
 5 };
 6
 7 $(document).ready(function(){
 8 //自定义选择器的使用很简单,它和其他选择器一样,返回一个元素包装集
 9 //你可以为他使用格式方法,比如下面这样修改它的css样式
10  $(‘a:withRel‘).css(‘background-color‘, ‘green‘);
11 });

这样,我们就让rel属性不为空的元素的背景颜色变成绿色。(第1,2,4个<a>背景颜色变成绿色,也就是说没有rel属性的<a>也被选中了。$this.attr(‘rel‘) !=‘ ‘居然返回true)

注意:我们可以在js部分的第4行代码中编写我们需要实现的逻辑与包含器。包含返回true,不包含返回false。

这里有个很奇怪的现象,当我们把js部分的第4行代码改为 return ($this.attr(‘rel‘)); 只有第2个和第4个<a>被选中了。也就是说,3个<a>rel=""为空的元素,也是返回false(没被选中);

时间: 2024-08-03 10:26:23

使用自定义选择器的相关文章

jquery 自定义选择器

//  HTML 代码 <body> <div id="divid1" class="divclass">白色</div> <div id="divid2" class="divclass">白色</div> <div id="divid3" class="divclass">白色</div> <d

jQuery Custom Selector JQuery自定义选择器

什么是JQuery的选择器呢,详见JQuery中的Selector: http://docs.jquery.com/Selectors 比如 $("div:contains('John')").css("text-decoration", "underline");的contains选择器等等 JQuery自定义选择器的基本语法: $.expr[':'].test = function(obj, index, meta, stack){ /* o

@Import导入自定义选择器

@Import导入自定义选择器 之前一篇博文:Spring中的@Import注解已经详细介绍了@Import注解,不赘述. 需求描述 通过@import注解自定义组件选择器,将满足我们自定义的规则的bean导入到ioc容器中 项目结构 案例代码 首先是UserService接口及其实现类 public interface UserService { void saveUser(); } // 注意这里我们没有加入@service注解,因为我们将不采用@componentScan去指定扫描的注解.

jQuery2.0+中自定义选择器插件

jQuery中自定义插件,主要可以分为三大类:封装对象方法的插件.封装全局函数的插件.选择器插件. 以下分享低版本jQuery和jQuery2.0+版本中选择器插件的使用: 原理:        jQuery的选择符解析器首先会使用一组正则表达式来解析选择器,然后针对解析出的每个选择符执行一个函数,称为选择器函数.最后根据这个选择器函数的返回值为true还是false来决定是否保留这个元素.这样就可以找到匹配的元素节点 先上代码,在解析: 低版本jQuery <html xmlns="ht

ios自定义选择器ActionSheetPicker改进版

ios自带的UIDataPicker和UIDatePicker最大的毛病就是没有带确定和取消这两个按钮,而ActionSheetPicker是以上两个选择器的开源封装.但是这个东东也有些小问题,就是没有汉化选择器的内容. 原始的ActionSheetPicker运行起来是这个样子的: 改进后是这以下这个样子的 点击此处下载,有问题可加扣扣359709421讨论. 补充一个缺陷的修复,在ios7以上版本中,选择器数据部份是透明的,很不美观, 把AbstractActionSheetPicker.m

小程序地区时间自定义选择器 picker

进入微信公众平台小程序开发文档搜索 picker 点进去后下滑,点击在开发者工具中预览即可 原文地址:https://www.cnblogs.com/junyi-bk/p/10475301.html

jquery学习(四)-如何书写自定义的jquery插件

来自锋利的jquery第二版 下面我们开始介绍如何通过现有的方法和函数,封装出既符合自己需求,有高效的插件. Jquery插件公分为3类,分别为:封装对象方法的插件.封装全局函数的插件.自定义选择器插件,在介绍插件的三种类型之前,我们先来了解书写插件的基本要点(这里转自aspwzmuma和锋利的jquery): a.插件的文件命名推荐遵循jQuery.[插件名].js的规则,以便于与其他的js文件的区分,如新插件文件jquery.newplugin.js. b.对象级别插件,所有的方法都应依附于

选择器(UIPickerView)

Apple提供了两种形式的选择器:日期选择器(UIDatePicker)与自定义选择器(UIPickerView). 当用户使用日期选择器选定一个时间后,调用datePickerID.date可以直接获得一个NSDate对象,从而可以进行一系列的时间与日期处理. 自定义选择器的使用稍微麻烦点,当你直接从控件栏里拖放Picker View到故事板然后运行,会发现调试器界面空无一物.这是因为UIPickerView必须用代码实现一些协议才能正常显示.而且无法在Attributes Inspector

JQuery插件编写之定制版选择器

很多人是因为jQuery的强大选择器而爱上它的(没错,我就是特别讨厌原生JS的FindElementById),但是何尝不想把一些经常用的链式操作组合写成一个选择器呢?! 从机制上来讲,jQuery的选择符解析器首先会使用一组正则表达式来解析选择器,然后对解析出来的每个选择符执行选择器函数,最后根据true或false来决定是否保留元素. 比如说: $('div:gt(1)') 在jQuery的源文件中是由jQuery.expr[":"] = jQuery.expr.pseudos 对