2016-11-28 81 views
0

在Ajax调用动态填充数据。通迭代对象按钮JavaScript函数点击

要求:填充,如果我们点击按钮,它应该传递对象需要沿着调用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

与您的代码的问题是,value被字符串化到[object object]。您可以通过观察DevTools中的html来检查。

这就是为什么,功能永远不会收到原始对象,因此属性(ID,值等)undefined

我建议保持在一个变量从AJAX接收到的原始数据,并在HTML级联项的ID。所以,在updateDocument(),你首先需要搜索接收到的ID在列表中,然后该行为。

另一种方法是使用JSON.stringify(value)和连接具有HTML的结果。当在updateDocument()接收的值,解析JSON接收,并且采取行动反对。但是这会让你的HTML笨拙而冗长。