Jquery,过滤和隐藏元素,如何排序这些"元素到底
Jquery, filter and hide elements, howto sort these ".hidden" elements to bottom
目前我有一个apache wicket导航树,显示一个根节点,有几个子节点和一个简单的文本输入,用于过滤树项。
过滤后,不匹配的项通过添加css类隐藏。这很有效。
在使用过滤器后,我对未隐藏的项目进行排序有问题,所以在尝试了一个多小时之后,我想:"让我们再问问那些在格斯格zoverflowz上的善良和愿意的人吧。"
更新:我为此发布了一个jsfiddle: http://jsfiddle.net/polzifer/ypu9K/
树是这样的:
<input type="text" id="filter"/>
<div class="navigation">
<wicket:panel>
-RootNode
-Child with a link inside
-Child with a link inside
-Child with a link inside
-...
</wicket:panel>
</div>
在那棵树上面,我有一个简单的文本输入,在"keyup"上用javascript过滤树:
function filterList(){
var count = 0;
/*
* for every link item in the navigation tree check, if they match the search entry
* and add the class ".hidden{ visibility: hidden;}" to it's enclosing parent
* element
*/
jQuery(".navigation a").each(function () {
if(jQuery(this).text().search(new RegExp(jQuery("#filter").val(),"i"))<0){
jQuery(this).parents(".wicket-tree-content").addClass("hidden");
}else{
jQuery(this).parents(".wicket-tree-content").removeClass("hidden");
count++;
}
});
//Detach children from the navigation, sort them and append them again
//(we have a <wicket:panel> element around the children)
jQuery('.navigation').children().children().detach().sort(
function(a,b) {
var condA = jQuery(a).hasClass("hidden");
var condB = jQuery(b).hasClass("hidden");
var result = 0;
if(condA == condB){
result = -1;
}
if(condA != condB){
result = 1;
}
return result;
}).appendTo(jQuery('.navigation').children());
}
现在的诀窍是分离所有的"。隐藏的"元素,并将它们附加到…
http://jsfiddle.net/polzifer/ypu9K/4/相关文章:
- html,js-如何限制元素"范围“-命名空间
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- "隐藏/显示”;元素和更改按钮背景图像
- 将元素添加到javascript中"字典“;大堆
- Javascript.替换元素“<termref/>"用规则的“;文本”;
- 使用javascript"随机引用“;脚本,但跨越两个独立的元素
- “间歇”;jqLite不支持通过选择器查找元素"当使用RequireJS加载AngularJS时
- 如何使用JQuery's”;.on()"方法来处理非本机jquery元素
- 为什么我的动画"重放的“;当通过innerHTML添加元素时
- jQuery:元素静止":隐藏的“;在.slideDown()之后
- 如何访问JSON元素-"JavaScript中名称中的字符
- "text长度"Internet Explorer中svg文本元素悬停时的更改
- ReactJS-将溢出的元素放入一个“"下拉按钮
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- Knockout.js"<!--ko if:-->"导致分离DOM元素的块
- 如何隐藏所有下一个"字段集“;元素使用jQuery
- 如何删除扩展属性“;jquery123456"来自元素
- 带错误的Onsen UI导航:您不能提供no"ons页”;元素到“;ons导航器”;当返回第一页时
- Javascript:如何检查一个元素是否是"显示”;在屏幕上
- HTML元素"中的URL文本.Split不是一个函数