在Ajax中调用动态填充数据。
要求:如果我们点击按钮填充后,它应该调用JavaScript函数以及传递对象所需的函数。 在JavaScript中,我们需要使用value.id,value.title,value.description等来访问数据.....(预期结果) 但我无法从函数参数中获取数据,我尝试使用 stringify,解析方法,但没有。
请告诉我,如何在JavaScript函数中访问?
success : function(data) {
var listData = null;
$.each(data.documentsList,function(index, value) {
//some logic ----------(iam able to get value.id, value.title, value.description...)
listData += '<button value="Update" onclick="updateDocument(\''+ value + '\')">Update</button>'
//some logic ----------
});//each loop end
$('#list').html(listData);
},//success end
function updateDocument(document) {
console.log("updateDocument" + document); //[object object]
console.log(document.title); //undefined
}
答案 0 :(得分:0)
您的代码存在的问题是value
已被字符串化为[object object]
。你可以通过在DevTools中观察你的html来检查它。
这就是为什么函数从不接收原始对象,因此属性(id,value等)是undefined
。
我建议将从AJAX收到的原始数据保存在变量中,并在HTML中连接项目的id。因此,在updateDocument()
中,您首先需要在列表中搜索收到的ID,然后对其进行操作。
另一种方法是使用JSON.stringify(value)
并将结果与HTML连接起来。收到updateDocument()
中的值后,解析收到的JSON,并对其采取行动。但这会使你的HTML笨拙而冗长。