2012-08-09 90 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();