我有一个模块,其中我有一个对象,我附加了一些元素,这取决于该对象的长度。现在我想为所有元素设置不同的ID。
下面是我的代码:
Items.map(item =>{
var ParentDiv = document.getElementById('parentDiv');
var headerH1 = document.createElement('h1')
headerH1.setAttribute('id','header1')
ParentDiv.appendChild(headerH1);
})
我已经试过了:
for(var i=0;i<=50;i++)
{
headerH1.setAttribute('id','header'+i)
ParentDiv.appendChild(headerH1);
}
我以为这可以工作,但它只是附加了50个元素,但它们的ID都是相同的,"header50"
你能告诉我我在想念什么吗?感谢。
每个createElement
代表它自己的DOM元素,您需要独立地与每个元素交互:
const parentDiv = document.getElementById('parentDiv');
Items.forEach((item, i) => {
const newItem = document.createElement('h1');
newItem.setAttribute('id', `header${i}`);
parentDiv.appendChild(newItem);
});
另外,虽然不是必需的,但我将map
切换到forEach
,因为map
实际上应该只用于创建一个新列表,而不是作为一个函数来迭代列表,这就是forEach
的作用。
另外,它是2023,使用let
/const
代替var
:)