使用普通javascript添加与类名匹配的增量数据属性

使用普通javascript添加与类名匹配的增量数据属性,javascript,foreach,custom-data-attribute,Javascript,Foreach,Custom Data Attribute,我试图将增量数据属性设置为一系列具有公共类名的div 例如,我有以下几个div: <div class="field__item">Test</div> <div class="field__item">Test</div> <div class="field__item">Test</div> <div class="field__item">Test</div> <div class="fi

我试图将增量数据属性设置为一系列具有公共类名的div

例如,我有以下几个div:

<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
<div class="field__item">Test</div>
但这只设置了第一个div,我不知道如何让它使用类似于
forEach
的东西来设置所有div的数据属性。我试着这样做:

const item = document.querySelectorAll(".field__item");
Array.prototype.forEach.call(item, function(elements, index) {
  let a = 1;
  item.setAttribute("data-foo", a++);
});
但是,与
item.setAttribute一起出错的不是一个函数。


欢迎任何建议。

您可以直接从返回的中调用
.forEach()

.forEach()
的第一个参数是当前元素,第二个参数是当前索引

const item=document.queryselectoral(“.field\uu item”);
item.forEach((元素,索引)=>{
元素setAttribute('data-foo',索引);
});
//只是为了演示数据更改
item.forEach(element=>console.log(element.getAttribute('data-foo'))
测试
试验
试验
试验
试验
试验
试验

Test
您可以直接从返回的

.forEach()
的第一个参数是当前元素,第二个参数是当前索引

const item=document.queryselectoral(“.field\uu item”);
item.forEach((元素,索引)=>{
元素setAttribute('data-foo',索引);
});
//只是为了演示数据更改
item.forEach(element=>console.log(element.getAttribute('data-foo'))
测试
试验
试验
试验
试验
试验
试验

测试
尝试
项目[索引]
,因为项目是一个集合。您的多元化有问题。我将其称为
items
,而不是
items
,在回调函数中,它应该是
element
,而不是
elements
。这将有助于明确您想要调用
元素
.setAttribute。(还请注意,您可以直接在
项目上调用
forEach
)尝试
项目[索引]
,因为项目是一个集合。您的多元化有问题。我将其称为
items
,而不是
items
,在回调函数中,它应该是
element
,而不是
elements
。这将有助于明确您想要调用
元素
.setAttribute。(还请注意,您可以直接在
项目上调用
forEach
)啊,好的。是的,我现在看到了。我需要从jQuery的方式中解构我的大脑,所以试图弄明白这样的事情,我似乎需要帮助。谢谢啊,好的,很酷。是的,我现在看到了。我需要从jQuery的方式中解构我的大脑,所以试图弄明白这样的事情,我似乎需要帮助。谢谢
const el = document.querySelector('.field__item');
let a = 1;
el.setAttribute('data-foo', (a++));
const item = document.querySelectorAll(".field__item");
Array.prototype.forEach.call(item, function(elements, index) {
  let a = 1;
  item.setAttribute("data-foo", a++);
});