在jQuery中使用选择符表达式查找元素的时候,jQuery会在一个内部的映射expr中取得JavaScript代码。当且仅当取得的函数返回true的情况下,才会让每个元素包含在结果集中。
使用$.extend()函数可以为这个映射添加新的表达式。
$.extend($.expr[':'], { group: function(element, index, matches, set) { var num = parseInt(matches[3], 10); if (isNaN(num)) { return false; } return index % (num * 2) < num; } }); })(jQuery);
以上代码告诉jQuery:group是一个有效的字符串,可以放在一个冒号的后面构成选择符表达式。
这个被求职的函数接收4个参数:
elements:当前考虑的DOM元素;
index:DOM元素在结果集中的索引;
matches:包含用于解析这个选择符的正则表达式的解析结果。其中最有用的是matches[3],其为调用函数时传入的文本。
set:匹配到当前元素的整个DOM元素集合。
( 摘自《Learning jQuery》(Third Edition) )