Вот мой код, определяющий новую настраиваемую селекторную группу.
(function($) {
$.extend($.expr[':'], {
group: function(element, index, matches, set) {
var num = parseInt(matches[3], 10);
if (isNaN(num)) {
return false;
}
console.log('The value of index element is '+index);
return index%(num * 2)<num;
}
});
})(jQuery);
Затем в моем document.ready(function(){ });
когда я называю простым
$('tr:group(3)')
Консоль.log говорит следующее ->
'83' The value of index element is 0
Это означает, что индекс постоянно 0, и я не могу знать, почему. Любая помощь будет оценена.
Пожалуйста, проверьте следующий FIDDLE http://jsfiddle.net/hardeepmehta/KkTQX/
Какую версию jQuery вы используете? В этой скрипте с 1.7.2 он возвращает ненулевые индексы, но начиная с 1.8.3, индексы равны нулю.
В jQuery 1.8 и новее вы должны использовать новый Sizzle API для создания настраиваемых селекторов.
Пример, который они дают:
Sizzle.selectors.pseudos.not =
Sizzle.selectors.createPseudo(function( selector /* the argument for not */ ) {
var matcher = Sizzle.compile( selector );
return function( elem ) {
return !matcher( elem );
};
});