0

我正在运行 jQuery 1.8.0.min.js

当我开始在输入框中输入以过滤列表时,什么也没有发生,在 Chrome 调试器中,我收到以下错误:

未捕获的类型错误:无法读取未定义的属性“3”

指向线:

jQuery.expr[':'].Contains = function (a, i, m) {
            return (a.textContent || a.innerText || "").toLowerCase().indexOf(m[3].toLowerCase()) >= 0;
        };

代码:

(function ($) {
    jQuery.expr[':'].Contains = function (a, i, m) {
        return (a.textContent || a.innerText || "").toLowerCase().indexOf(m[3].toLowerCase()) >= 0;
    };
    function listFilter(list) {
        var input = $('#classroomSearch');
        $(input)
          .change(function () {
              var filter = $(this).val();
              if (filter) {
                  $(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
                  $(list).find("a:Contains(" + filter + ")").parent().slideDown();
              } else {
                  $(list).find("li").slideDown();
              }
              return false;
          })
        .keyup(function () {
            $(this).change();
        });
    }
    $(function () {
        listFilter($("#filterList"));
    });
}(jQuery));
4

1 回答 1

2
jQuery.expr[":"].contains = jQuery.expr.createPseudo(function(arg) {
    return function( elem ) {
        return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
  });

我将其更改为上述内容,现在可以使用。

在这里找到它:https ://github.com/nakajima/jquery-livesearch/issues/5

于 2012-09-14T10:58:04.343 回答