如何将每个'querySelectorAll'元素提取到'for of'循环中的另一个变量

时间:2017-06-27 17:08:54

标签: javascript

for of循环中,我想为每个DOM元素创建一个不同的变量(以迭代编号结尾),以便我可以在后面使用它们:

for ( let i of document.querySelectorAll('.formClient.error') ) {
      var elem+iteractionNumber = i
}

我不知道我将获得多少元素,而且我不想创建全局变量(此代码段将与预定义的有限范围一起使用,我不想污染全局范围)。

1 个答案:

答案 0 :(得分:1)

我想你可以这样做:

window['someprefix_' + i] = i;

但这确实不是一个好方法。

你可以存储这是一个更好的对象:

var hash = {};
// the loop
for ( let i of document.querySelectorAll('.formClient.error') ) {
  hash[i] = i;
}

如果您使用的是ES6功能,那么使用数组的foreach可以做得更好:

let hash = {};
[].forEach.call(document.querySelectorAll('.formClient.error'), (item, index) => {
    hash[index] = item;
})