擬似クラスを実装しようとしています (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」個の連続するグループにスタイルを適用することであり、そのように使用して、tbody (「this」) の 3 行ごとに別の色 (「alt」で分類) で色を付けることができます。
$(this).children(':visible').has('td').filter(':group(3)').addClass('alt')
これは 1 つの tbody に適しています。しかし、複数の 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 で同じ効果を得るにはどうすればよいでしょうか?
あなたの洞察に感謝します!