JavaScript 复选框标签过滤器 : Issue to hide results when unchecked

标签 javascript jquery checkbox filter

我有一个带有复选框的内容过滤器,可以在选项中获取.text。

问题是取消选中后不会重置,并显示所有应该过滤的内容。

$("#filters :checkbox").click(function() {

   var re = new RegExp($("#filters :checkbox:checked").map(function() {
                          return this.value;
                       }).get().join("|") );
   $("div").each(function() {
      var $this = $(this);
      $this[re.source!="" && re.test($this.text().toLowerCase()) ? "show" : "hide"]();
   });
});

它应该清理结果。

整个代码在 JsFiddle https://jsfiddle.net/4fhkzxdp/2/

最佳答案

$("#filters :checkbox:checked")为空时(当所有复选框都未选中时),用于创建新正则表达式的字符串为空。如果您使用该表达式,它将匹配您的所有元素并显示它们。

var myRegexp = new RegExp('') // /(?:)/

快速破解是将复选框存储在变量中,并在each循环中检查该数组是否为空 - 如果是,则没有任何元素可见。操作方法如下:https://jsfiddle.net/3t2hydmn/

关于JavaScript 复选框标签过滤器 : Issue to hide results when unchecked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718234/

相关文章:

javascript - 如何根据已预先选择的列表上的文本过滤下拉列表

jquery 不包含在捆绑中

css - 更改未选中的 Material-UI 复选框的背景颜色

javascript - 如何禁用用户选中的默认复选框以取消选中

javascript - 将 Mootools 1.1 Ajax 调用转换为 Mootools 1.3

javascript - obj ['' ] 在 Javascript 中是什么意思?

javascript - Three.js 中的帧速率异常高

java - 创建对象以获取预期的 Json

jquery "this"分隔悬停

php - 图片中的多个复选框