如何使jQuery包含不区分大小写,包括jQuery 1.8?

我试图使用“包含”情况下不敏感。我试着使用解决方案在下面的stackoverflow问题,但它没有工作:

Is there a case insensitive jQuery :contains selector?

为了方便起见,将解决方案复制到此处:

jQuery.extend(
        jQuery.expr[':'], { 
                Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0" 
});

这里是错误:

Error: q is not a function
Source File: /js/jquery-1.4.js?ver=1.4
Line: 81

这里是我使用它的地方:

  $('input.preset').keyup(function() {
    $(this).next().find("li").removeClass("bold");
    var theMatch = $(this).val();
    if (theMatch.length > 1){
      theMatch = "li:Contains('" + theMatch + "')";
      $(this).next().find(theMatch).addClass("bold");
    }
  });

我使用原来大小写敏感的“包含”在同一场景下工作没有任何错误。有没有任何想法?我很感激。

这是我在一个当前项目中使用,没有任何问题。看看你有没有更好的运气这种格式:

jQuery.expr[':'].Contains = function(a, i, m) { 
  return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; 
};

在jQuery 1.8的API为这个改变,这个jQuery 1.8版本将是:

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

You can test it out here.有关1.8定制选择器check out the Sizzle wiki here的更多详细信息。

http://stackoverflow.com/questions/2196641/how-do-i-make-jquery-contains-case-insensitive-including-jquery-1-8

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何使jQuery包含不区分大小写,包括jQuery 1.8?