怎么在for循环里面 点击按钮通过onclick传递一个ID参数?

怎么在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);
        });
    }
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632