是否存在不区分大小写的jQuery:包含选择器?

是否存在不区分大小写的:包含jQuery选择器的版本,还是应该通过循环所有元素并将它们的.text()与我的字符串进行比较来手动完成工作?

回答:

我最终为jQuery 1.2做的是:

jQuery.extend(

jQuery.expr[':'], {

Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"

});

这将扩展jquery以使其不区分大小写的:Contains选择器,:contains选择器保持不变。

编辑:对于jQuery 1.3和更高版本,您需要

jQuery.expr[':'].Contains = function(a,i,m){

return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;

};

编辑:显然通过使用直接访问DOM

(a.textContent || a.innerText || "")

代替

jQuery(a).text()

在前面的表达式中,它大大提高了速度,因此如果速度有问题,请您自担风险。

最新编辑:对于jQuery 1.8,应为:

jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {

return function( elem ) {

return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;

};

});

以上是 是否存在不区分大小写的jQuery:包含选择器? 的全部内容, 来源链接: utcz.com/qa/412248.html

回到顶部