根据名称属性选择元素

Selecting elements based on name attribute

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

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]+"]"));
}

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

可能您正在推送 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>

你试过了吗:

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)
<div name="blue"></div>
<div name="yellow"></div>
<div name="red"></div>