Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按多个选定类筛选_Javascript_Jquery_Html_Filter - Fatal编程技术网

Javascript 按多个选定类筛选

Javascript 按多个选定类筛选,javascript,jquery,html,filter,Javascript,Jquery,Html,Filter,我已经创建了一个多复选框过滤器 其思想是在类别中进行选择,并过滤至少具有其中一个类别的元素 目前,它正在进行过滤,但会显示包含所有类别的元素 这就是我正在使用的: function run() { $("div").hide(); choice = ""; $(":checked").each(function() { choice += "." + this.id; }); if (choice) $("div" + ch

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

其思想是在类别中进行选择,并过滤至少具有其中一个类别的元素

目前,它正在进行过滤,但会显示包含所有类别的元素

这就是我正在使用的:

function run() {
    $("div").hide();
    choice = "";
    $(":checked").each(function() {
       choice += "." + this.id;
    });
    if (choice) 
        $("div" + choice).show();
};    
是一把小提琴,向你展示它是如何工作的


如何显示至少选中了一个类的元素?

您可以在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()
并删除循环后的代码。
$(“#”+this.id).show()执行速度比
div.#id
@Cue true快,但目标元素具有
class
属性,而不是
id
@RoryMcCrossan我的眼睛今天不工作。谢谢你批改我。我编辑了答案,所以如果没有检查输入,你可以显示每个