2012-08-09 180 views
0

我有一個有兩個動態構建的jQuery可排序無序列表的asp.net頁面。我正在使用它將項目從一個列表拖放到另一個列表中。這部分工作正常。但是,我現在需要能夠過濾列表中的項目。我已經找到使用選擇器的代碼,但它們似乎都使用包含錨點的列表項目使用選擇器篩選jQuery可排序的無序列表

('#titles>ul>li>a')

當我從選擇刪除'>a",留下

'#titles>ul>li',它停止工作。

我嘗試了幾次迭代的東西,但似乎沒有工作。 任何幫助將不勝感激。

+3

你可以顯示其他所有相關代碼嗎? – 2012-08-09 19:23:32

+0

如果它使用'> a',那麼爲什麼要刪除它?我認爲你的清單物品實際上並沒有錨定在其中?我將動作換成更多代碼,沒有人能夠在沒有看到它應該對付的標記的情況下調試選擇器。 – 2012-08-09 19:32:32

回答

0

我已經使用了helper code by Kilian Valkhof

jQuery.expr[':'].contains = function(a,i,m){ 
    return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0; 
}; 

此代碼實際上允許我使用選擇:包含我的表情。

有了幫手,我可以找到任何包含給定文本的元素。當我找到匹配的元素時,我會向上看DOM樹以找到closest li標籤。匹配的li標籤就是我想要隱藏(或顯示)的內容。

filter = "textToSearch"; 
$matches = $("ul").find(':contains(' + filter + ')').closest('li'); 
$('li', list).not($matches).hide(); 
$matches.show();