使 jQuery :contains 不区分大小写

Avatar of Chris Coyier
Chris Coyier
// NEW selector
jQuery.expr[':'].Contains = function(a, i, m) {
  return jQuery(a).text().toUpperCase()
      .indexOf(m[3].toUpperCase()) >= 0;
};

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

更新以适用于 jQuery 1.8

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

有了这个,

$("div:contains('John')")

将选择这三个元素

<div>john</div>
<div>John</div>
<div>hey hey JOHN hey hey</div>

演示 通过 Pablo Fortes。