2014-11-14 65 views
0

我想創建帶有jQuery手機和手機的字典應用程序。但我有一個問題,在過濾部件如何過濾jQuery手機過濾某些字段

過濾某些詞彙,例如代碼,我使用了過濾列表視圖代碼示例:

<form> 
<input data-type="search" id="divOfPs-input"> 
</form> 
    <div class="elements" data-filter="true" data-input="#divOfPs-input"> 
    <p><strong>These</strong> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed   diam</p> 
    <p><strong>tags</strong> nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</p> 
    <p><strong>Tags</strong> erat, sed diam voluptua. At vero eos et accusam et justo duo dolores </p> 
    <p><strong>are</strong> et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est</p> 
    <p><strong>Filterable</strong> Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur</p> 
</div> 

我的目的是「強」的標籤,不是所有的話只能過濾詞...怎麼做?謝謝你的回答..

回答

0

你可以使用可過濾小部件的filterCallback選項。基本上,覆蓋默認過濾器來搜索文本比較反對<strong>文本:

$(document).on("pagecreate", "#page1", function(){  
    $(".elements").filterable('option', 'filterCallback', StrongSearch); 
}); 


function StrongSearch(idx, searchValue) { 
    var ret = false; 
    if (searchValue && searchValue.length > 0){ 
     var filttext = $(this).data("filtertext") || ''; 
     filttext = filttext.toLowerCase(); 
     var text = $(this).find("strong").text().toLowerCase();   
     if(text.indexOf(searchValue.toLowerCase()) < 0 && filttext.indexOf(searchValue.toLowerCase()) < 0){ 
      ret = true; //filter this one out 
     } 
    } 
    return ret; 
} 

在頁面上創建,設置了過濾(在我的例子StrongSearch)使用filterCallback。該回調傳遞該項目的索引並在搜索文本中輸入。回調的this上下文是被檢查的元素(示例中爲<p> dom元素)。

var text = $(this).find("strong").text().toLowerCase();在strong元素中查找文本,而filttext檢查是否使用了data-filtertext屬性。最後使用indexOf()javascript函數來查看搜索值是包含在強文本還是包含在data-filtertext屬性中。

工作DEMO

另一個例子,更詳細信息,請參閱本博客文章,演示瞭如何更改缺省過濾從包含搜索文本與搜索文本開始(全面披露,我寫的條目):

http://jqmtricks.wordpress.com/2014/07/30/starts-with-instead-of-contains-filter-text/

+0

哇做到了完美...感謝快速回答ezanker ..我明白, – 2014-11-14 16:29:14

+0

@GAJIkoegajikoe,不客氣。 – ezanker 2014-11-14 16:30:38

+0

對不起ezanker,我仍然有問題,我已經嘗試了你的代碼,但是在使用它的時候出現了一個問題,比如我過濾了單詞:「工作」但是有回報: bookwork breastworks brickwork 等 不是確切的詞:工作,如何做到這一點? – 2014-11-16 07:06:07