2

在我的表格中,我应该根据数组中的存在应用两种类型的类,我该如何过滤?

这是我的尝试:

<form>

    <input type="checkbox" value="one" />
    <input type="checkbox" value="two" />
    <input type="checkbox" value="three" />
    <input type="checkbox" value="four" />
    <input type="checkbox" value="five" />

</form>

var names = ["one","two","three"];


$(":checkbox", "form").filter(function(){
    return $(this).val() === names
}).addClass("blue")

$(":checkbox", "form").filter(function(){
    return $(this).val() !== names
}).addClass("green")

但不起作用..任何正确的方法来完成它

这是小提琴

4

1 回答 1

3

您需要检查输入值是否存在于数组中,而不是数组名称等于该值。为此,您可以使用$.inArray,如果它在数组中找到它,它将返回该项目的索引 else -1

$("form :checkbox").filter(function(){
    return $.inArray(this.value, names) > -1
}).addClass("blue")

$("form :checkbox").filter(function(){
    return $.inArray(this.value, names) == -1
}).addClass("green")

演示:小提琴

或者

var names = ["one","two","three"];

$("form :checkbox").addClass(function(){
    return $.inArray(this.value, names) > -1 ? 'blue' : 'green'
})

演示:小提琴

于 2013-06-27T08:01:28.157 回答