javascript - 如何将js函数中的对象作为函数参数传递?
问题描述
我在表中有一个 jquery foreach 附加列表。我想要的是传递我从 ajax 成功函数获得的完整对象。但是当我尝试将对象作为参数传递给不同的 JS 函数时,参数变得未定义。
这是我的附表:
$.ajax({
type: "post",
url: "@Url.Content("~/Estimate/GetOffsetLetterHeadCost
")",
data: $('#OffLetterHeadForm').serialize(),
datatype: "json",
traditional: true,
success: function(data) {
var Json = data;
$.each(Json, function(index, obj) {
var row = '<tr>' + '<td style="padding:10px" > <b style="font-size:18px">' + obj.VendorName + '</b> </td> ' + '<td><label id="machineId' + index + '">' + obj.MachineName + ' < / label > < /td > ' + '<td> <input type="button" value="Order" id="btn' + index + '"onclick = "SaveOffsetOrder(obj)" / > < /td></tr > ';
$("#AllVendorsList").append(row);
});
}
});
function SaveOffsetOrder(obj) { // here i am getting obj undefined
// do something with obj
}
<table id="AllVendorsList" class="table table-striped table-hover " style="font-size:14px; font-family:'Trebuchet MS'"></table>
请帮忙..谢谢
解决方案
而不是使用 onclick 使用绑定,这将使生活变得更加轻松。例如
'<td> <input type="button" value="Order" id="btn' + index + '"
/ > < /td></tr > '
$("#AllVendorsList").append(row);
$("#btn" + index).bind("click",{obj:obj},SaveOffsetOrder);
function SaveOffsetOrder(e){
console.log(e.data.obj);//this will return your object.
}
推荐阅读
- data-annotations - Blazor 文本编辑器无法在表单上绑定值(创建/编辑)
- bazel - 如何在 bazel 中实现回归测试?
- javascript - 在 underscore.js 中按日期对数组进行排序
- matlab - 来自文件夹的评估函数
- javascript - 将forEach函数的多个输出排列到javascript中的一个数组中
- android - 如何在运行应用程序的所有设备上更新 Redux 商店?
- java - 队列方法问题白色问题是它会删除数据吗?
- verilog - What is the purpose of the "begin : u" after the for loop?
- gatsby - Gatsby Starter 博客性能低下
- android - 在 android webview 中屏蔽广告