【问题标题】:Filtering by multiple selected classes按多个选定类过滤
【发布时间】:2019-12-21 19:52:11
【问题描述】:

我创建了一个多复选框过滤器

想法是在类别中进行选择并过滤至少具有这些类别之一的元素

目前,它正在过滤但显示具有所有类别的元素

这是我正在使用的:

function run() {
    $("div").hide();
    choice = "";
    $(":checked").each(function() {
       choice += "." + this.id;
    });
    if (choice) 
        $("div" + choice).show();
};    

This 是一个向您展示其工作原理的小提琴。

如何显示至少检查了一个类的元素?

【问题讨论】:

  • 在每个循环中,只需调用$("." + this.id).show();并删除循环后的代码。

标签: javascript jquery html filter


【解决方案1】:

您可以在 forEach 循环中显示它们

function run() {
    $("div").hide();
    const checked = $(":checked")
    if (checked.length === 0) {
        return $("div").show();
    }
    checked.each(function() {
        $("div." + this.id).show();
    });
};  


【讨论】:

  • $("#" + this.id).show(); 的执行速度比 div.#id
  • @Cue true,但目标元素具有class 属性,而不是id
  • @RoryMcCrossan 我的眼睛今天不灵了。感谢您纠正我。
  • 我编辑了答案,因此如果没有检查任何输入,您可以显示每个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多