每个人都知道,在jQuery中,按属性选择的方式如下:
var abc =$('input[name=iphone]');
在我的情况下,我有一个数组。我想选择在我的数组中属性匹配值的元素。
类似的东西:
var abc =$('input[name in (my_array)]');
你明白我的意思
答案 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]]');
}