修订代码
jQuery(function($) {
$("#filter").keyup(function () {
var filter = $(this).val(), count = 0;
$(".filtered h2").each(function () {
if ($(this).text().search(new RegExp(filter, "i")) != -1) {
$(this).parent().addClass("hidden");
} else {
$(this).parent().removeClass("hidden");
count++;
}
$("#filter-count").text(count);
});
});
});
我列出了许多div,我希望能够添加一个允许用户开始输入的输入字段,并根据每个div h2标记过滤div。我正在尝试下面的代码,但它没有过滤。它也没有抛出任何错误,所以我不知道该做什么......
这是html标记:
<input id="filter" name="filter" size="40"/>
<div class="filtered">
<div class="archive-row clearfix">
<label>Creator: </label><h2 class="hidden">Alchemy</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
<div class="archive-row clearfix">
<label>Creator: </label><h2 class="hidden">Mathematics</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
<div class="archive-row clearfix">
<label>Creator: </label><h2 class="hidden">English</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
</div>
这是jquery ......
$(document).ready(function() {
$("#filter").keyup(function () {
var filter = $(this).val(), count = 0;
$(".filtered h2").each(function () {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).addClass("hidden");
} else {
$(this).removeClass("hidden");
count++;
}
});
$("#filter-count").text(count);
});
});
答案 0 :(得分:1)
<input id="filter" name="filter" size="40"/>
<div class="filtered">
<div class="archive-row clearfix">
<label>Creator: </label><h2 >Alchemy</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
<div class="archive-row clearfix">
<label>Creator: </label><h2 >Mathematics</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
<div class="archive-row clearfix">
<label>Creator: </label><h2>English</h2>
<label>Title: </label> <p>Cras velit eros, eleifend ut viverra </p>
<label>Summary: </label><p>Etiam lobortis, risus a dignissim tempor, neque sapien lobortis mi, quis semper sapien nisi dictum nisi. Integer neque neque</p>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#filter").keyup(function () {
var filter = $(this).val(),
count = 0;
$(".filtered h2").each(function () {
var parent = $(this).parent(), length = $(this).text().length>0;
if ( length && $(this).text().search(new RegExp(filter, "i")) < 0) {
parent.hide();
} else {
parent.show();
count++;
}
});
$("#filter-count").text(count);
});
});
</script>
<div id="filter-count"></div>
答案 1 :(得分:0)
看来你在实际的H2标签上使用了.each()函数,并且还添加/删除了那些隐藏的类。我的猜测是,你想从div本身添加/删除隐藏的类而不是H2?
$(document).ready(function() {
$("#filter").keyup(function () {
var filter = $(this).val(), count = 0;
$(".filtered h2").each(function () {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).parent().addClass("hidden");
} else {
$(this).parent().removeClass("hidden");
count++;
}
});
$("#filter-count").text(count);
});
});
答案 2 :(得分:0)
我可能错了,但我认为你想要隐藏父div,所以打电话给父母就可以解决这个问题。
$(document).ready(function() {
$("#filter").keyup(function () {
var filter = $(this).val(),
count = 0;
$(".filtered h2").each(function () {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).parent().addClass("hidden");
} else {
$(this).parent().removeClass("hidden");
count++;
}
});
$("#filter-count").text(count);
});
});
答案 3 :(得分:0)
这个jquery插件适合你,它的文件管理器有一些div按标题或其他元素按类名
http://labs.easyblog.it/jquery-filterbox/
$('#findbox1').filterbox({
container: '.boxlist',
child: '.box',
childKey: '.title'
});