所以我正在创建一个包含元素信息的数组。我遍历所有元素并保存索引。出于某种原因,我无法将此数组转换为 json 对象!
这是我的数组循环:
var display = Array();
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
我尝试通过以下方式将其转换为 JSON 对象:
data = JSON.stringify(display);
它似乎没有发送正确的 JSON 格式!
如果我像这样手动编写代码,它可以工作并发送信息:
data = {"0":"none","1":"block","2":"none","3":"block","4":"block","5":"block","6":"block","7":"block","8":"block","9":"block","10":"block","11":"block","12":"block","13":"block","14":"block","15":"block","16":"block","17":"block","18":"block","19":"block"};
当我对 JSON.stringify 对象发出警报时,它看起来与手动编码的对象相同。但它不起作用。
我要疯了,试图解决这个问题!我在这里想念什么?发送此信息以获取手动编码格式的最佳方式是什么?
我正在使用这个 ajax 方法来发送数据:
$.ajax({
dataType: "json",
data:data,
url: "myfile.php",
cache: false,
method: 'GET',
success: function(rsp) {
alert(JSON.stringify(rsp));
var Content = rsp;
var Template = render('tsk_lst');
var HTML = Template({ Content : Content });
$( "#task_lists" ).html( HTML );
}
});
使用 GET 方法,因为我正在显示信息(不更新或插入)。仅将显示信息发送到我的 php 文件。
最终解决方案
var display = {};
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
$.ajax({
dataType: "json",
data: display,
url: "myfile.php",
cache: false,
method: 'GET',
success: function(rsp) {
alert(JSON.stringify(rsp));
var Content = rsp;
var Template = render('tsk_lst');
var HTML = Template({ Content : Content });
$( "#task_lists" ).html( HTML );
}
});