【发布时间】:2026-01-30 10:35:02
【问题描述】:
我有一个页面上的链接列表和一组应该过滤链接的复选框,以便只有具有特定条件的链接才会处于活动状态。我的初步尝试包括创建一个包含所有活动的过滤器选项的数组,并运行 .filter(Array) 以使它们处于活动状态,并运行 .not(Array) 以禁用其他链接。
问题在于,如果选择了多个过滤器选项,则与任一过滤器选项匹配的任何链接都将处于活动状态。实际上,我想要的只是与所有过滤器选项匹配的链接处于活动状态。
这是我在jsFiddle中的精简版
var filterAll = ["filter-F_0", "filter-F_1", "filter-F_2", "filter-F_3", "filter-F_4", "filter-P_0", "filter-P_1", "filter-P_2", "filter-P_3", ]
var filterActive = [];
function filterApps(){
if(filterActive.length == 0)
{
filterReset();
return;
}
var arrActive = $.map(filterActive, function (val) {
return '[' + val + ']'
}).join(",")
addToLog("arr = " + arrActive);
$(".appLink").filter(arrActive).css(activeAppCSS).addClass("active").removeClass("disable");
$(".appLink").not(arrActive).css(disabledAPPCSS).addClass("disable").removeClass("active");}
【问题讨论】:
-
“而不是 this 和 this 和 this 是标准,只有满足这些标准的才应该被激活。”你能更具体吗?
-
当前,如果您选择多个过滤器选项,则任何与任一过滤器选项匹配的内容都将处于活动状态。实际上,我想要的只是与两个过滤器选项匹配的链接才处于活动状态。 更有意义?
-
我编辑了我的帖子,使其更加清晰。 (我希望)
标签: javascript jquery filter