0
我有一个用JSON数据创建表的脚本。在每行内部,我有两个文本和一个按钮。按钮的onlick方法应该转到其他HTML页面,该页面将填充以前表中同一行的两个文本。 首先,我试图打印控制不同的按钮的onclick不同的文本。这里是一块应该这样做:如何为每个动态创建的按钮引用不同的onclick方法?
for (var i in json) {
var row = table.insertRow(0);
var cel1 = row.insertCell(0);
var cel2 = row.insertCell(1);
var cel3 = row.insertCell(2);
cel1.innerHTML = json[i].nome;
cel2.innerHTML = json[i].idade;
var b = document.createElement("BUTTON");
var idd = "id" + i;
b.setAttribute("id", idd);
var t = document.createTextNode("Loja");
b.appendChild(t);
b.onclick = function(event) {
console.log(idd);
}
cel3.appendChild(b);
虽然这与所有正确的ID的正确创建一个表,所有按钮的按下打印最后idd
价值,而不是相匹配的ID按钮之一。任何人都知道如何解决这个问题或者更好的实现方法?
使用'事件委托' – Mahi
那么这是一个封闭问题..尝试console.log(this.id)instea d。你也可以通过b.id来设置它 - 不需要id上的setAttribute。 – Lain