我正在尝试实现一个伪类(在 jQuery 1.8.3 中)。这是代码:
(function($) {
$.extend($.expr[':'], {
group: $.expr.createPseudo(function(arg) {
var index = 0;
return function(element) {
index += 1;
var num = parseInt(arg, 10);
if (isNaN(num)) {
return false;
}
return (((index-1) % (num*2)) < num);
}
})
});
})(jQuery);
此选择器的目的是将样式应用于“n”个连续的元素组,并且可以像这样使用,以另一种颜色(用“alt”分类)为 tbody(“this”)的每 3 行着色
$(this).children(':visible').has('td').filter(':group(3)').addClass('alt')
这对一个人来说效果很好。但是,如果我在几个 tbodies 上进行迭代(使用“ $('..').each” 构造),则索引不会在两者之间重置。这种效果可以在 jquery 1.6 中成功实现,因为我们自然(在底层的“组”函数参数中)有集合内的索引:
(function($) {
$.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 1.8 中实现相同的效果?
非常感谢您的见解!