我正在编写一个简单的 JavaScript 表单,它是一个设备列表,每个设备旁边都有一个按钮,该按钮应将您带到一个文本字段,您可以在其中编辑有关设备的信息。相反,所有按钮都会将您带到列表中最后一个设备的信息。这是我创建列表的片段:
for(var i in portal.clients){
var row = document.createElement('tr');
var cell2 = document.createElement('td');
var button = document.createElement('button')
var title = document.createTextNode("Edit Config")
button.appendChild(title)
button.onclick = function(){displaySettingsPage(portal.clients[i]); console.log("Showing client: " + clientNum)}
cell2.appendChild(button)
row.appendChild(button)
var cell1 = document.createElement('td');
var client = document.createTextNode(portal.clients[i].info.description.name)
cell1.appendChild(client)
row.appendChild(cell1)
table.appendChild(row);
}
我认为问题是函数声明i
中的onClick
函数在单击按钮时被评估,而不是在函数声明时像我的意思那样。有没有一种方法可以在声明函数时强制对变量进行评估?还是我应该使用其他方法将客户端索引传递给函数?