2015-11-03 33 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

你說得對,我的錯誤,我已經爲你更新了答案 –