如何使用setAttribute将回调中的值添加到新元素中?

时间:2019-05-05 14:44:09

标签: javascript node.js sqlite electron setattribute

我需要将回调的值添加到我的setAttribute中。我怎么做?

此值对于以后稍后从表中获取数据是必需的。

这是代码:

row.forEach(function(row) {
         var subchapname = document.createElement("div");
         subchapname.setAttribute("id", "subchaptertitle");
         subchapname.setAttribute("subid", '"+row+"');
         subchapname.setAttribute("onclick","{ alert('You are not going to believe this!') } ");
         subchapname.textContent = row.subname;
         rows.appendChild(subchapname);

基本上,这意味着: 回调=行

此回调需要添加到subchapname.setAttribute("subid", '"+row+"');

这可能吗?

这是实际结果:

<div id="subchaptertitle" subid="&quot;+row+&quot;" onclick="{ alert('You are not going to believe this!') } ">bos in brand</div>```

1 个答案:

答案 0 :(得分:0)

subid并不是用于在其中存储数据的属性,因此您不能将这样的属性添加到html-tag并用值填充(当然,在其中写入字符串是可以的,但是这就是您所要做的)需要?)。但是,如果使用html5,则可以添加数据集。因此,使用此解决方案将行值存储在subid的数据集属性中。 如果row是一个对象,并且您想查看该对象的字符串化值,请先使用JSON.stringify将其存储在数据集中

row.forEach(function(row) {
  var subchapname = document.createElement("div");
  subchapname.setAttribute("id", "subchaptertitle");
  subchapname.dataset.subid = row;
  // subchapname.dataset.subid = JSON.stringify(row);
  subchapname.setAttribute("onclick","{ alert('You are not going to believe this!') } ");
  subchapname.textContent = row.subname;
  rows.appendChild(subchapname);
});

您的元素现在应如下所示:

<div id="subchaptertitle" onclick="{ alert('You are not going to believe this!') } " data-subid="[object Object]"></div>

或者如果您使用JSON.stringify:

<div id="subchaptertitle" onclick="{ alert('You are not going to believe this!') } " data-subid="what ever row is as a string"></div>

要将值记录到控制台,(将标签添加到DOM之后),请执行以下操作:

console.log(document.getElementById('subchaptertitle').dataset.subid);

如果您使用JSON.stringify,现在请使用以下内容:

console.log(JSON.parse(document.getElementById('subchaptertitle').dataset.subid));