我正在使用下面的 jscript 代码来过滤无序列表。我正在尝试<h3>
在搜索时删除结果的标签。例如,如果搜索蝙蝠侠我当前的输出是
Action
Batman
Adventure
我需要删除标题冒险因为在这个类别下没有结果。
<script type="text/javascript">
(function ($) {
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
function listFilter(header, list) {
var form = $("<form>").attr({"class":"filterform","action":"#"}),
input = $("<input>").attr({"class":"filterinput","type":"text"});
$(form).append(input).appendTo(header);
$(input)
.change( function () {
var filter = $(this).val();
if(filter) {
$(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
$(list).find("a:Contains(" + filter + ")").parent().slideDown();
} else {
$(list).find("li").slideDown();
}
})
.keyup( function () {
$(this).change();
});
}
$(function () {
listFilter($("#header"), $("#list"));
});
}(jQuery));
</script>
我的html是
<div id="wrap">
<h1 id="header">DVD Collection<form class="filterform" action=""><input class="filterinput" type="text"></form></h1>
<h3>Action</h3>
<ul id="list">
<li><a href="#">Batman</a></li>
<li style="display: list-item;"><a href="#">Star Trek (2009)</a></li>
<li style="display: list-item;"><a href="#">Tremors</a></li>
</ul>
<h3>Adventure</h3>
<ul id="list">
<li style="display: list-item;"><a href="#">Ice Age</a></li>
<li style="display: list-item;"><a href="#">Avathar</a></li>
</ul>
</div>