javascript - 在 innerHTML 中调用一个函数

标签 javascript loops innerhtml

我需要在 innerHTML 中调用一个函数,这是我的尝试,但它不起作用。

category.find({}, function(err, docs) {
    docs.forEach(function(d) {
          var id = d._id
          document.getElementById('result').innerHTML += '<li onclick=insert(id)>' + d.name + '</li>'
    })
})

function insert(id){
  alert(id + "Inserted")
}

这是 HTML 部分:

<div id="result"></div>

最佳答案

onclick 属性中的变量在全局范围内计算,您不能引用局部变量。您需要将字符串中的 id 替换为 id 变量的实际值。您可以使用模板文字执行此操作。

const docs = [{
  id: "FgrbV2NTp72ie6xj",
  name: "Joe"
}, {
  id: "agfadsfasdfq23",
  name: "Fred"
}];

docs.forEach(function(d) {
  document.getElementById('result').innerHTML += `<li onclick="insert('${d.id}')">${d.name}</li>`
});

function insert(id) {
  alert(id + " Inserted")
}
<ul id="result"></ul>

关于javascript - 在 innerHTML 中调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082735/

相关文章:

javascript - 映射 JS 对象并将参数合并到子对象中

javascript - 不需要在 javascript 中转义 innerHTML 字符?

javascript - 将字符串添加到 innerHTML 问题 |选择2

python - 在字符串中查找数字

c - C中不同文件中写入数据

javascript - 循环遍历json并获取nodejs中的特定值

javascript - 使用 DOM Canvas 更新 Canvas 元素

javascript - 日期时间日历 : select date range in a single input field

javascript - 类型错误 : function is not a constructor (evaluating 'new self.f(1)' )

javascript - 网格相对于其父级的定位