如何切换不等于特定文本/类别的所有列表项?

时间:2019-01-24 11:05:17

标签: javascript jquery checkbox filter categories

我有一个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();
}

});

0 个答案:

没有答案