jQuery.extend (
jQuery.expr[':'].containsCI = function (a, i, m) {
//-- faster than jQuery(a).text()
var sText = (a.textContent || a.innerText || "");
var zRegExp = new RegExp (m[3], 'i');
return zRegExp.test (sText);
}
);
$.expr[':'].icontains = function(el, i, m) { // checks for substring (case insensitive)
var search = m[3];
if (!search) return false;
var pattern = new RegExp(search, 'i');
return pattern.test($(el).text());
};
在函数 i 中,对元素 text 使用 .toLowerCase(),也使用 subString,它可以避免区分大小写的条件,并检查其中是否有 subString。然后,.filter()方法从匹配元素的子集构造一个新的 jQuery 对象。
现在您可以获得 match Object 中的 match 元素,并且可以做任何您想做的事情。
var subString ="string you want to match".toLowerCase();
var matchObjects = $("elementsYouNeed").filter(function () {return $(this).text().toLowerCase().indexOf(subString) > -1;});