选择属性匹配数组中存在的值的元素

时间:2013-01-18 10:35:03

标签: jquery asp.net-mvc

每个人都知道,在jQuery中,按属性选择的方式如下:

var abc =$('input[name=iphone]');

在我的情况下,我有一个数组。我想选择在我的数组中属性匹配值的元素。

类似的东西:

var abc =$('input[name in (my_array)]');

你明白我的意思

5 个答案:

答案 0 :(得分:3)

您可以从数组中构建Multiple Selector

var arraySelector = $.map(my_array,
    function (item) {
       return "input[name=" + item + "]";
    }).join(",");

var abc = $(arraySelector);

答案 1 :(得分:1)

你必须像这样接近它:

var collection = [];
$("input[name]").each(function () {
    if($.inArray($(this).attr("name"), yourArray)) {
        collection.push($(this));
    }
});

答案 2 :(得分:1)

选择的答案很接近,但有一个问题:$ .inArray返回数组中值的索引,如果不存在,则返回-1。所以我会编辑答案:

var collection = [];
$("input[name]").each(function () {
    if($.inArray($(this).attr("name"), yourArray) != -1) {
        collection.push($(this));
    }
});

答案 3 :(得分:0)

var my_array = [ /* array of names */ ];
var abc = $('input').filter( function(){
    return (my_array.indexOf( this.name ) > -1);
});

答案 4 :(得分:-1)

你应该在数组的长度上运行一个循环

var abc="";
for(var i=0;i<my_array.length;i++){
abc=$('input[name =+my_array[i]]');
}