2011-08-24 56 views
1

所以我有一個列表,在下列方式格式化:過濾與jQuery Mobile的格式化列表

<.ul data-role="listview" data-filter="true"> 
<.li> 
<.h2>header<./h2> 
<.p>description<./p> 
<./li> 
<./ul> 

我怎麼能只有頭部分篩選呢?我會很感激的快速回答:)

+0

你是什麼意思頭部分過濾器?你想獲得所有標題列表? – Henry

+0

不,我希望顯示所有內容,但是應該考慮僅過濾標題部分。如果我們有2條記錄: Arti 雙色 餅乾怪物 反社會反社會。 當我在搜索欄中輸入'a'時,雖然我只需要第一個記錄,但因爲第二個(其他)在頭部不包含'a',所以我得到了兩個記錄。 – Rufix

回答

2

jQuery手機支持過濾列表聖誕節,這應該是你想要達到的罰款。

http://jquerymobile.com/test/docs/lists/docs-lists.html#/test/docs/lists/lists-search.html

編輯:

這表明如何隱藏,並且基於< H2從一個搜索框內容>表演元素。您可能需要爲您的項目調整它,但它應該讓您開始。

http://jsfiddle.net/A3qFK/3/

<script> 
// This makes the contains selector case insensitive 
// Use :containsCaseInsensitive in place of :contains() 
jQuery.expr[':'].containsCaseInsensitive = function(a, i, m) { 
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; 
}; 


// When a key is pressed, hide and show relevant list items 
$("#Search").live('keyup', function(e) { 
    var SearchTerm = $(this).val(); 

    // Find items to hide 
    var ItemsToHide = $("li", "#ItemList").not(":containsCaseInsensitive("+ SearchTerm +")"); 
    $(ItemsToHide).hide(); 

    // Find items to show 
    var ItemsToShow = $("h2:containsCaseInsensitive(" + SearchTerm + ")", "#ItemList").parent(); 
    $(ItemsToShow).show(); 

}); 
</script> 


<input type="text" id="Search"> 

<ul id="ItemList" data-role="listview" data-filter="true"> 
    <li> 
     <h2>Item 1</h2> 
     <p>Winner</p> 
    </li> 
    <li> 
     <h2>Item 2</h2> 
     <p>description</p> 
    </li> 
    <li> 
    <h2>Lorem</h2> 
     <p>Some more content</p> 
     </li> 
    <li> 
     <h2>Ipsum</h2> 
     <p>Content</p> 
    </li> 
</ul> 
+0

不是這樣,當每個列表元素由2個asp標籤組成(忘記提及它使用ASP.NET完成)時,通過這種方式篩選兩個標籤,但我只希望它檢查第一個標籤。 – Rufix

+0

好的,給我一分鐘的病nock的東西做手動 – Henry

+0

我編輯了我的答案與JSFiddle的例子和腳本。 – Henry