【问题标题】:jQuery:Case insensitive :contains [duplicate]jQuery:不区分大小写:包含 [重复]
【发布时间】:2014-08-04 23:19:44
【问题描述】:

如何更改以下函数以不区分大小写搜索所有 div 元素(div[id*=music]),其中链接包含 search_text;

function search(el){
    var search_text = $(el).val();
    //if(!search_text) return false;
    var search_block = $('div.music_box');
    search_block.children('div[id*=music]:hidden').show();
    search_block.children('div[id*=music]').filter(':not(:has(a:contains('+search_text+')))').hide();
    console.log(search_block.children('div[id*=music]'));
}

jQuery v1.10.2

【问题讨论】:

  • 不要过度使用 DOM 选择器。使用过滤回调,不区分大小写的字符串比较在那里很简单。
  • Bergi,你能给我看一个过滤我的函数的例子吗? )

标签: javascript jquery jquery-selectors


【解决方案1】:

试试这个:

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

然后你可以像这样使用它:$("element:Contains")

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 2011-10-20
    • 2012-02-18
    • 2012-07-29
    • 2023-04-02
    • 2012-09-13
    • 2012-09-06
    • 2014-05-22
    相关资源
    最近更新 更多