感谢您的阅读。我有一个谜,我可以看起来舔。我创建了一个基于JSON对象创建表行的jQuery插件。在这个插件,我希望有一个AJAX调用分页,导致一个新的JSON对象具有相同的变量名称与不同的键/值对(我想覆盖它)。成功后,我可以提醒数据,但无法访问我正在提醒的数据中的变量。从jQuery返回Javascript变量AJAX调用覆盖以前的Javascript/JSON对象
var grid = {
"name": "test",
"columns":
[
{"name":"col1"},
{"name":"col2"}
],
"rows":
[
{"name":"col1", "value":"text1"},
{"name":"col2", "value":"text2"}
]
}
$("#myDiv").makeTable(); <-- plugin that creates table based off this JSON
// if I alert grid.columns[0].name I get col1 no problem.
然后我做了一些jQuery的东西循环并创建一个表,没有问题... ...
那么我的这个代码块从我makeTable()插件中:
$.ajax({
url: 'get_json-pages.php',
type: "GET",
data: form_data, <-- my string
dataType:"script", <-- set it to script because the output is just the javascript
success: function(data) {
alert(data); <-- alerts perfectly, looks like the same JSON above but
with different key/value pairs
the alert looks like this:
var grid = {
"name": "test",
"columns":
[
{"name":"col3"},
{"name":"col4"}
],
"rows":
[
{"name":"col3", "value":"text3"},
{"name":"col4", "value":"text4"}
]
}
now when I do this:
alert(grid.columns[0].name);
it is a blank alert?
}
});
如何使用AJAX JSON覆盖JSON对象并重新加载我的插件以显示新的数据集?
在此先感谢!
如果你想在你的代码中留下评论,你可以使用实际的评论''//所以我们可以看到你真的在运行。如果该代码实际运行(就像你说的它与第一个警报一样),然后你下一个声明一个名为'grid'的变量,那么你的下一个警报将工作[jsFiddle](http://jsfiddle.net/GfCKW/)。但是,由于您指定了'dataType:“脚本”',所以我怀疑您实际上是在尝试访问'data'的属性,这是一个字符串,而不是一个对象。 – Sinetheta 2012-04-26 22:54:19