2012-09-21 37 views
2

我正在尋找一個插件/擴展jquerys:包含選擇是案件insesitive並且只有與啓動詞相匹配:包含文本的jQuery 1.8包含情況insesitive +始於

在這樣一種方式,如果你輸入「計數」,你不會得到「賬戶」結果

在此先感謝

編輯:我結束了以下

$.expr.pseudos.Contains = $.expr.createPseudo(function(arg) { 
return function(elem) { 
    var sentence = $(elem).text().trim().toLowerCase(); 
    var words = sentence.split(' '); 
    arg = arg.toLowerCase(); 
    var args = arg.split(' '); 
    var searchfound = true; 

    for(var ix = 0, lx = args.length; ix < lx; ix++) { 

    var thisfound = false; 

    for(var i = 0, l = words.length; i < l; i++) { 
     var wordpos = sentence.indexOf(words[i]); 
     var restofsentence = sentence.slice(wordpos, wordpos+args[ix].trim().length); 
     if(restofsentence == args[ix].trim()){    
     thisfound = true; 
     } 
    } 

    if (thisfound == false) { 
     searchfound = false; 
    } 

    } 

    return searchfound; 

}; 
}); 

它搜索es從每個搜索條目的開頭開始,如果匹配,則返回true,而不管輸入順序如何。

+0

@JoeFletch我正在尋找一個搜索功能,搜索人和他們的職業列表 – afcdesign

回答

3

您可以輕鬆地爲創建自己的僞選擇:

$.expr.pseudos.startsWith = $.expr.createPseudo(function(arg) { 
    return function(elem) { 
     return $(elem).text().trim().slice(0, arg.length).toLowerCase() == arg.toLowerCase(); 
    }; 
}); 

Demo

匹配任何字,你需要的空間割裂開來,並遍歷集合:

$.expr.pseudos.anyWordStartsWith = $.expr.createPseudo(function(arg) { 
    return function(elem) { 
     var words = $(elem).text().trim().toLowerCase().split(' '); 
     arg = arg.toLowerCase(); 

     for(var i = 0, l = words.length; i < l; i++) { 
      if(words[i].slice(0, arg.length) == arg) 
       return true; 
     } 

     return false; 
    }; 
}); 

Demo

The函數採用主題元素的內容text(),修剪任何空格,將其轉換爲小寫,以便區分大小寫比較,並將字符串拆分爲數組,其中空格被視爲列表分隔符("a b c" => ["a", "b", "c"])。

然後它將arg這是您的搜索詞組轉換爲小寫,也是爲了區分大小寫比較。

它繼續迭代單詞數組,並將每個單詞的子串與目標短語進行比較。我使用的是.slice(0, n)而不是.substring(0, n),因爲如果主題字符串的長度小於n個字符,則後者會投訴。

如果找到任何這樣的匹配,迭代將立即中斷,返回true,否則它將遍歷整個集合併到達返回false的最後一行。

+2

+1,我不知道你可以做到這一點! – billyonecan

+0

這幾乎是我正在尋找的東西 - 但它只查找第一個單詞 - 是否可以修改它以查找選擇器中的每個單詞? :) – afcdesign

+0

我只理解它的一半 - 但它的作品像一個魅力 - 感謝很多:D – afcdesign

相關問題