javascript - jQuery,根据数组检查类

标签 javascript jquery arrays class

这个问题的标题可能会产生误导,但我想不出更好的措辞方式。

让我进入正题吧。我正在使用按钮来过滤状态表。如果我有按钮 A 和按钮 B 处于事件状态,我只想显示 A 和 B,其余的都隐藏。目前我只能让它显示 A 或 B,不能同时显示两者。

var aSelected = [];
$(".admin_view #filterTable tr td button").on("click", function() {
    $(this).toggleClass("selected"); //class to show user button is active
    //Add to array if not in already
    if ($.inArray(this.id,aSelected) == -1) {
        aSelected.push(this.id);
    //Remove from array if button is not active
    } else if ($.inArray(this.id,aSelected) >= 0) {
        aSelected.splice(aSelected.indexOf(this.id), 1);
    }
    //Show all if array is empty
    if (!aSelected.length) {
        $(".admin_view #applicantTable tbody tr").each(function() {
            $(".admin_view #applicantTable tbody tr").removeClass("hidden");
        });
    }
    //This is the section I need help with
    $.map(aSelected, function(a) {
        $(".admin_view #applicantTable tbody tr").not("."+a).addClass("hidden");
        $(".admin_view #applicantTable tbody tr."+a).removeClass("hidden");
    });
});

我需要找到一种方法来与整个数组进行比较,而不是与一个数组进行比较。

最佳答案

目前,您可以隐藏 aSelected 中每个项目的所有其他元素,而不仅仅是在开头。如果您首先隐藏所有内容,然后显示您想要的元素,它应该可以工作:

//This is the section I need help with
$(".admin_view #applicantTable tbody tr:not(.hidden)").addClass("hidden");
$.map(aSelected, function(a) {
    $(".admin_view #applicantTable tbody tr.hidden."+a).removeClass("hidden");
});

关于javascript - jQuery,根据数组检查类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32416152/

相关文章:

javascript - YouTube 播放器 iframe 的非动态插入不会触发事件

javascript - 绑定(bind)到 Angular 2 服务中的数据对象的正确方法?

javascript - 在 Drupal 7 上单击按钮并保存 cookie

javascript - 如何获取两个具有不同id的隐藏标签的值

python - 在不创建任何对象副本的情况下展平 Python 列表?

javascript - 计算/获取隐藏的 div 宽度(以 Angular 为单位)

javascript - 使用 jQuery 重置单选按钮

javascript - 克隆范围不起作用

javascript - 从 JSON 字符串中删除重复的日期值

arrays - 如何在调用 MATLAB 的 arrayfun 时捕获多个返回值?