Javascript 为通过document.createElement创建的div提供参数

Javascript 为通过document.createElement创建的div提供参数,javascript,html,node.js,Javascript,Html,Node.js,我想使用for循环创建多个div,我是这样做的 for(let i = 0; i < data.length; i++) { let divs = document.createElement('div'); divs.className = 'button'; divs.data-id = (data[i]).id; // error document.body.appendChild(divs); } 现在我的问题是需要数据id,但它

我想使用for循环创建多个div,我是这样做的

for(let i = 0; i < data.length; i++) {
  let divs = document.createElement('div');
  divs.className = 'button';
  divs.data-id = (data[i]).id;                  // error
  document.body.appendChild(divs);
}
现在我的问题是需要数据id,但它会弹出一个错误。那么如何动态定义数据id呢

我还尝试将整个div作为另一个div的innerHTML提供,但是它无法呈现。那么,如何解决这一问题呢?

请改用:

还要注意,Javascript标识符中不允许使用连字符,它们将被解析为减法。

使用:

for(let i = 0; i < data.length; i++) {
  let divs = document.createElement('div');
  var attr = document.createAttribute('data-id');
  attr.value = (data[i]).id;
  divs.setAttributeNode(attr);
  document.body.appendChild(divs);
}
还要注意,Javascript标识符中不允许使用连字符,它们将被解析为减法。

您正在查找divs.setAttribute'data-id',data[i].id

for(let i = 0; i < data.length; i++) {
  let divs = document.createElement('div');
  var attr = document.createAttribute('data-id');
  attr.value = (data[i]).id;
  divs.setAttributeNode(attr);
  document.body.appendChild(divs);
}
如果您试图读取一个带有时髦字符(如示例中的破折号)的属性,您可以使用括号而不是点符号来访问它,并引用如下属性:divs.attributes['data-id']

您正在查找divs.setAttribute'data-id',data[i].id

如果您试图读取一个带有时髦字符的属性,如示例中的破折号,您可以使用括号而不是点符号来访问它,并引用如下属性:divs.attributes['data-id']

这应该可以:

或者使用Jquery替代方案:

var newDiv=$,{id:'foo',class:'tclose'}

这应该起作用:

或者使用Jquery替代方案:

var newDiv=$,{id:'foo',class:'tclose'}

看这个:看这个:
for(let i = 0; i < data.length; i++) {
  let divs = document.createElement('div');
  divs.setAttribute("id", "btn_id");
  divs.setAttribute("class", "btn_class");
  divs.setAttribute("data-id", (data[i]).id);
  document.body.appendChild(divs);
}