Javascript 正在尝试对数组使用jQuery filter()

Javascript 正在尝试对数组使用jQuery filter(),javascript,jquery,arrays,filter,Javascript,Jquery,Arrays,Filter,我有一组复选框,单击这些复选框可以向数组添加属性。问题是我想过滤那些具有我刚刚添加到该数组中的特定属性的链接 所以我有一个数组可以有[“filter-F_0”,“filter-F_1”]等等。。。现在,下面的代码仅在单击一个复选框时有效,因此我的数组将为[“filter-F_0],但一旦有更多的复选框,我就会丢失。我应该在循环中执行此操作吗 var arr = filterArray.join(",") $(".appLink").filter("[" + arr + "]").css({

我有一组复选框,单击这些复选框可以向数组添加属性。问题是我想过滤那些具有我刚刚添加到该数组中的特定属性的链接

所以我有一个数组可以有[“filter-F_0”,“filter-F_1”]等等。。。现在,下面的代码仅在单击一个复选框时有效,因此我的数组将为[“filter-F_0],但一旦有更多的复选框,我就会丢失。我应该在循环中执行此操作吗

var arr = filterArray.join(",")

$(".appLink").filter("[" + arr + "]").css({
                        borderColor : 'red',
                        borderWidth : '1px',
                        borderStyle : 'solid'
                    });
我在下面建立了一个简单的例子,希望能帮助解释我正在尝试做什么


看起来您正在寻找基于或条件的筛选器。现在您正在创建一个筛选器条件,如
[filter-F\u 0,filter-F\u 0]
,该条件无效,您可能需要
[filter-F\u 0],[filter-F\u 0]
。请尝试

var arr = $.map(filterArray, function (val) {
    return '[' + val + ']'
}).join(",")

我建议改用这个:

它可以让你过滤一个可观察对象,当你改变你的选择时,它会更新视图。这可能是一个比自己手动处理更好的方法

但为了澄清,您使用如下过滤器:

return this.products().filter(function(product) {
    return product.isSelected();
});
其中this.products()是一个对象数组,您传入的函数从数组中获取一个项(产品),并返回true/false,无论它是否包含在filter函数的输出中。您所做的是在该函数中循环,以查看当前行的filters数组是否具有该值


$.map()在函数上与另一个答案中提到的filter()类似…

因为选择器
[filter-F_0,filter-F_0]
无效。您也可以使用类,比如在中。是否有一个“:not”版本的过滤器?'$(“.appLink”).filter(:not“+arr.css()”@Bardsworth,您可以使用.not()代替.filter(),比如
$(.appLink”)。不是(arr)
我喜欢这条路的走向,在我下一步的努力中,我可能会沿着这条路走下去。谢谢你提供的信息!