使用selector迭代jQuery可排序无序列表

时间:2012-08-09 19:20:03

标签: jquery asp.net jquery-ui-sortable

我有一个asp.net页面,它有两个动态构建的jquery可排序无序列表。我用它来将项目从一个列表拖放到另一个列表中。那部分工作正常。但是,我现在需要能够过滤列表中的项目。我找到了使用选择器的代码,但它们似乎都使用包含锚点的列表项

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

当我从选择器中删除'>a"时,请保留

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

我已经尝试了几次迭代,但似乎没有任何效果。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我使用了helper code by Kilian Valkhof

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

这段代码实际上允许我在表达式中使用selector:contains。

使用帮助器,我可以找到包含给定文本的任何元素。当我找到匹配的元素时,我会向上看DOM树以找到closest li标签。匹配的li标签是我想隐藏(或显示)的内容。

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