怎么在for循环里面 点击按钮通过onclick传递一个ID参数?
怎么吧这个onclick="djUnlock('+id+')"
传到function djUnlock(id)这个里面 主要是要这个ID 这个ID是循环出来的 不同按钮对应着不同ID
需要通过这个ID后面做其他操作
for (i = 0; i < result.length; i++) {
result.length[i];
var amount=result[i].amount;
amount=Math.round(amount/10**18 * 1000 ) / 1000;
id=result[i].id;
var lockDate=timestampToTime(result[i].lockDate);
var owner=result[i].owner;
owner=owner.slice(0,4)+"..."+owner.slice(38);
var token=result[i].token;
token=token.slice(0,4)+"..."+token.slice(38);
var unlockDate=timestampToTime(result[i].unlockDate);
tr +='<tr>'+
'<th scope="row">'+id+'</th>'+
'<td>'+token+'</td>'+
'<td>'+amount+'</td>'+
'<td>'+lockDate+'</td>'+
'<td>'+unlockDate+'</td>'+
'<td>'+
'<button type="button" class="btn btn-primary btn-xs mr-1" onclick="djUnlock('+id+')">解锁</button>'+
'<button type="button" class="btn btn-primary btn-xs">更新</button>'+
'</td>'+
'</tr>';
$("#normalLocksForUser").html(tr);//普通用户锁
}
function djUnlock(id){
console.log(id);
lockTokenAbi.methods.unlock(id).send({from:account},function(error,result){
console.log(id);
});
}
代码没问题,就是那样传入,不过如果id非数字
,需要用引号扩起传入的值,要不会出错,
不过account变量
的引用从哪来的?如果是当前登录系统用户的信息,注意变量作用域。如果引用到result中的值也需要当做参数传入
for (i = 0; i < result.length; i++) {
result.length[i];
var amount = result[i].amount;
amount = Math.round(amount / 10 ** 18 * 1000) / 1000;
id = result[i].id;
var lockDate = timestampToTime(result[i].lockDate);
var owner = result[i].owner;
owner = owner.slice(0, 4) + "..." + owner.slice(38);
var token = result[i].token;
token = token.slice(0, 4) + "..." + token.slice(38);
var unlockDate = timestampToTime(result[i].unlockDate);
tr += '<tr>' +
'<th scope="row">' + id + '</th>' +
'<td>' + token + '</td>' +
'<td>' + amount + '</td>' +
'<td>' + lockDate + '</td>' +
'<td>' + unlockDate + '</td>' +
'<td>' +
'<button type="button" class="btn btn-primary btn-xs mr-1" onclick="djUnlock("' + id + '")">解锁</button>' +
'<button type="button" class="btn btn-primary btn-xs">更新</button>' +
'</td>' +
'</tr>';
$("#normalLocksForUser").html(tr);//普通用户锁
}
function djUnlock(id) {
console.log(id);
lockTokenAbi.methods.unlock(id).send({ from: account }, function (error, result) {
console.log(id);
});
}
result[i].id会有相同的吗。
可以将i 设置为id 属性值,或者result[i].id拼接上i 整体作为属性值。
你那样写没问题,主要是下面这个函数要放在循环外卖,定义一次就可以了
function djUnlock(id){
console.log(id);
lockTokenAbi.methods.unlock(id).send({from:account},function(error,result){
console.log(id);
});
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!