jQuery的.expr用法,一段代码

(function($) {
  $.extend($.expr[':'], {
    group: function(element, index, matches, set) {
      var num = parseInt(matches[3], 10);
      if (isNaN(num)) {
        return false;
      }
      console.log(index);
      console.log(num * 2);
      console.log(index % (num * 2) );
      return index % (num * 2) < num;
    }
  });
})(jQuery);

在《jQuery基础教程(第四版)》9.2.1有这么一个自定义选择器,但是我发现这个选择器不起作用,三个 console.log()是我自己加的,console.log(index)结果永远是0,按理说index不应该是遍历调用者的每个元素吗?已下载了书本提供的官方源代码来测试,排除个人手打出现错误

阅读 3.4k
1 个回答

这段就是在挖坑……我翻了下人邮图灵系列下这本书的勘误表,确定有这个的:详情链接
截图:
clipboard.png

另外我自己也按照原书的意思调通了一个,js部分代码:

(function($) {
  $.extend($.expr[':'], {
    group: function(element, index, matches, set) {
      var num = parseInt(matches[3], 10);
            var x = $(element).index();
      if (isNaN(num)) {
        return false;
      }
      return x <= num;
    }
  });
})(jQuery);

$(document).ready(function() {
  function stripe() {
    $('#news').find('tr.alt').removeClass('alt');
    $('#news tbody').children(':visible').has('td').each(function() {
      $(this).filter(':group(3)').addClass('alt');
    });
  }
  stripe();
});

在线Demo:
http://runjs.cn/detail/qrtxmvga

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题