根据名称属性选择元素

时间:2018-04-02 12:10:53

标签: javascript arrays selector

我有一个每个元素属性的数组。我希望通过遍历数组来获取该数组中的所有元素。这就是我试过的:

var array = ["blue", "yellow", "red"]; // these are name attributes of elements

for(var i=0; i<array.length; i++) {
    var elements = Array.from(document.querySelectorAll("div[name="+array[i]+"]"));
}

问题是我得到三个分开的数组,我想要一个包含所有元素的数组。

2 个答案:

答案 0 :(得分:2)

可能你正在推动Array.from的结果,这是一个数组。

要将它们全部放入单个数组中,您需要为每次迭代连接结果(Array.from)。

var array = ["blue", "yellow", "red"]; // these are name attributes of elements

var elements = [];
for (var i = 0; i < array.length; i++) {
  elements = elements.concat(Array.from(document.querySelectorAll("div[name=" + array[i] + "]")));
}

console.log(elements)
<div name='blue'></div>
<div name='red'></div>
<div name='yellow'></div>

答案 1 :(得分:1)

你试过了吗?

&#13;
&#13;
var array = ["blue", "yellow", "red"]; // these are name attributes of elements


var query = array.map(name => "div[name="+name+"]").join(', ');

var elements = Array.from(document.querySelectorAll(query));
console.log(elements)
&#13;
<div name="blue"></div>
<div name="yellow"></div>
<div name="red"></div>
&#13;
&#13;
&#13;

相关问题