我有一个HTML列表,想要过滤特定的类别。例如,我的列表是:
<ul class="myList">
<li class="list-choose">
<input class="input-choose" type="checkbox" id="[ID]" name="ID[]"/>
<label class="label-choose" for=[ID]></label>
<div class="subtitle">
<span class="category">[category]</span>
</div>
</li>
</ul>
(总共约有40个列表项,应按类别选择进行过滤)
现在,我想创建一个类别过滤器(以复选框/按钮/ ..的形式),以便您可以选择要显示的类别,并隐藏不在该选定类别中的所有其他元素。我的列表项是由数组(即[category])创建的,因此列表项具有其自己的类别。但是,如何仅过滤所选类别?我希望任何人都可以帮助我,因为我的Javascript知识不是最好的。
谢谢!
我已经尝试过该Javascript,但是它不起作用:
function filter(element) {
var $trs = $('#myList .list-choose .subtitle input label').hide();
var regexp = new RegExp($(element).val(), 'i');
var $valid = $trs.filter(function () {
return regexp.test($(this).find('label').text())
}).show();
$trs.not($valid).hide()
}
$('input, select').on('keyup change', function () {
if($(this).val() !== ""){
filter(this);
} else{
$('#myList .list-choose .subtitle').show();
}
});