为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2019-06-17 14:30:00
是否有不区分大小写的jQuery:包含选择器?是否存在不区分大小写的*包含jQuery选择器或者应该通过遍历所有元素并将它们的.text()与我的字符串进行比较来手动完成这项工作?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

最后,我为jQuery1.2所做的是:

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

这将扩展jQuery,使其具有一个不区分大小写的:CONSCORE选择器,而:CONSCORE选择器保持不变。

编辑:对于jQuery1.3(谢谢@user 95227),您需要

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

编辑:显然,通过使用

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

而不是

jQuery(a).text()

在前面的表达式中,如果速度是一个问题,那么就冒着自己的风险吧。(见@John问题)

最新编辑:对于jQuery1.8,应该是:

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


查看完整回答
反对 回复 2019-06-17
?
炎炎设计

TA贡献1808条经验 获得超4个赞

从jQuery1.3开始,就不再推荐这种方法了。要使其正常工作,需要将其定义为一个函数:

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


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 580 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信