Javascript 单击按钮时发送行数据?
我有下一个信息对象Javascript 单击按钮时发送行数据?,javascript,html,bootstrap-modal,Javascript,Html,Bootstrap Modal,我有下一个信息对象 var data = [ { name: 'John Doe', transactions: [{...},{...},{...}] }, {...} ]; 我正在将此数据插入如下表中: function addRowsData(data) { var table = document.getElementById('main-table'); var rowCount
var data = [
{
name: 'John Doe',
transactions: [{...},{...},{...}]
},
{...}
];
我正在将此数据插入如下表中:
function addRowsData(data) {
var table = document.getElementById('main-table');
var rowCount = table.rows.length;
var tBody = document.createElement('tbody');
table.appendChild(tBody);
for (var i = 0; i < data.length; i++) {
var info = data[i];
var tr = tBody.insertRow();
for(var key in info){
if(key == 'transactions') continue;
var td = document.createElement('td');
td.innerHTML = info[key];
tr.appendChild(td);
}
var tdButton = document.createElement('td');
var button = document.createElement('button');
var clientId = info.id;
button.setAttribute('type', 'button');
button.setAttribute('class', '"btn btn-primary');
button.setAttribute('id', clientId);
button.innerHTML = 'More'
tdButton.appendChild(button);
tr.appendChild(tdButton)
button.addEventListener('click', function() {
openModal(info.transactions);
});
}
}
function openModal(transactions) {
console.log(transactions);
var modal = document.getElementById('my-modal');
var close = document.getElementsByClassName('close')[0];
close.addEventListener('click', closeModal, false);
modal.style.display = 'block';
}
函数addRowsData(数据){
var table=document.getElementById('main-table');
var rowCount=table.rows.length;
var tBody=document.createElement('tBody');
表3.儿童(t身体);
对于(变量i=0;i
每一行都有一个按钮,单击打开一个模式,在这个模式上我想显示来自事务数组的数据,我试着这样做
openmodel(info.transactions)
但这始终显示最后一个元素的数据。有没有办法做到这一点,当我单击行按钮时,我可以访问事务数组?在代码中,您在事件侦听器中引用info
。但是,变量info
在for
循环中会发生变化,因此在最后对于for循环,info将是最后一个索引。若要解决此问题,您可以传入eval(data[i])
,而不是传入info
,这样它将输入实际数据,而不是更改的变量。尝试在
tdButton.appendChild(button)之前添加按钮单击事件
查看是否将var info=data[i];
更改为let info=data[i];
帮助