2015-11-03 67 views
1

这里是JS脚本:如何使过滤器搜索不区分大小写?

this.searchUsers = function(searchUsername) { 
    if (searchUsername==='') return; 
    var temp = ("[data-username*='"+searchUsername + "']"; 
    $("div .contactListItem").not(temp).hide();  
}; 

工作正常,但它是对案件的敏感searchUsername。 如何让它运行不区分大小写? (无changin数据用户名值)

+0

使用'searchUsername.toLowerCase()'.. – Jai

+0

尝试使用.toLowerCase()函数,使他们小写。 –

+0

问题是上面只会修改'searchUsername',而不是属性本身,所以它们仍然不匹配。 –

回答

2

正如您所见,属性选择器区分大小写。要修改这个行为,你可以使用filter()

this.searchUsers = function(searchUsername) { 
    if (searchUsername === '') 
     return; 

    var temp = $("[data-username]").filter(function() { 
     return $(this).data('username').toLowerCase().indexOf(searchUsername.toLowercase()) != -1; 
    }); 
    $("div .contactListItem").not(temp).hide();  
}; 
+0

问题是:它只筛选EXACT用户名。我的原始匹配的任何部分感谢星号:var temp =(“[data-username * ='”+ searchUsername +“']”; – yarek

+0

你说得对,我的错误,我已经为你更新了答案 –