我在表中有一个 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
指定为 onclick='SaveOffsetOrder(
+ JSON.stringify(obj) + )'
注意前面的单引号SaveOffsetOrder
和 JSON.stringify(obj)
将创建 onclick
函数作为 SaveOffsetOrder({"name":"test"})
这是正确的。
var obj = {name: 'test'};
var html = `<input type="button" value="Order" id="btn' + index + '"
onclick='SaveOffsetOrder(` + JSON.stringify(obj) + `)' />`;
document.getElementById('content').innerHTML = html;
function SaveOffsetOrder(obj){
console.log(obj);
}
<div id='content'></div>
关于javascript - 如何在js函数中传递一个对象作为函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424377/