javascript - 将 JSON 数组传递给按钮 jQuery 的动态创建的 onclick 方法
问题描述
以下是我的代码,数据是 json 数组,我想传入更新按钮的 onclick 方法
function populateData(data) {
$(".studentPanel").show();
for (var i = 0; i < data.length; i++) {
$(".totalFee" + i).val(data[i].total.amount);
for (var j = 0; j < data[i].submissions.length; j++) {
var ts = new Date(data[i].submissions[j].created_at);
var dateString = ts.getDate() + "-" + ts.getMonth() + "-" + ts.getYear();
console.log(data[i].submissions[j].amount);
var tableRows = "<tr><td>" + data[i].submissions[j].amount + "</td><td>" + dateString + "</td>" +
"<td><button class=\"btn btn-primary Update\" onclick='updateFees(\"" + data[i].submissions[j].id + "\")'>Update</button></td><td><button onclick='deleteFees(\"" + data[i].submissions[j].id + "\")' class=\"btn btn-danger Delete\">Delete</button></td>\n</tr>";
console.log(tableRows);
$(".feeTable" + i).append(tableRows);
}
}
}
解决方案
这可以使用 data-id 属性来完成。前任:
var tableRows = "<tr>"+
"<td>" + data[i].submissions[j].amount + "</td>"+
"<td>" + dateString + "</td>" +
"<td>"+
"<button class='btn btn-primary Update' data-id=" + data[i].submissions[j].id + " onclick='updateFees()'>"+
"Update"+
"</button>"+
"</td>"+
"<td>"+
"<button onclick='deleteFees()' class='btn btn-danger Delete' data-id=" + data[i].submissions[j].id + ">"+
"Delete"+
"</button>"+
"</td>"+
"</tr>";
然后在 updateFees 和 deleteFees 的函数体中,这个 id 可以被访问为:
function updateFees(e){
var id = $(e.currentTarget).data("id");
//Rest of the code follows here
}
推荐阅读
- c++ - 循环中的自动变量和自动对象内存分配
- julia - 是否有一个方便的函数来计算 GLM.jl 的 lm 的 R^2?
- java - 基于数据的 RESTful shiro 权限
- mysql - 如何预处理使用 sqlx 获取的行?
- c# - 如何使用 sql server 身份验证模式从 .NET Webapi 执行 SSIS 包?
- javascript - 为什么 content.js 只执行最后一个命令
- javascript - 选择下拉选项后Laravel重复视图
- android - 如何仅通过 wifi 强制互联网连接?
- javascript - 设置多个`' 使用变量值的字段
- php - 我在我的代码中使用 Stripe API,但出现错误:您不能多次使用 Stripe 令牌:tok_1EIw1gKIAV9zC39qQnFXKzi6