1

我有这个由 json_encode() 检索的数组。当我执行

$.getJSON('beta.php' , function(data){
    console.log(data);
});

我得到的结果如下

[
Object { StuId="1", fName="Saman", more...},
Object { StuId="2", fName="Marry", more...},
Object { StuId="3", fName="Navjoth", more...},
Object { StuId="4", fName="Jassu", more...}
]

我正在尝试使用

$.each(data, function(key, value){

            for(var key in value){

                if(value.hasOwnProperty(key)){                  

                        $("#article tbody").html(                       
                        "<tr><td>" + value.StuId + 
                        "</td><td>" + value.fName + 
                        "</td><td>" + value.lName +
                        "</td><td>" + value.age +
                        "</td><td>" + value.grade + 
                        "</td></tr>");

                        $("article tbody").appendTo("document.body");               

                }

                }

        });

.我想这是不可能的,因为数组的上述格式。

如果有人能解释为什么会发生这种情况以及如何纠正它,我将不胜感激。我想知道如何将上述内容转换为以下格式。

[
{"StuId":"1","fName":"Saman","lName":"Kumara","age":"14","grade":"A"},
{"StuId":"2","fName":"Marry","lName":"Vass","age":"12","grade":"B"},
{"StuId":"3","fName":"Navjoth","lName":"Bogal","age":"32","grade":"A"},
{"StuId":"4","fName":"Jassu","lName":"Singh","age":"22","grade":"E"}
]
4

2 回答 2

2

您每次都用不同的值覆盖表格 html。

$(document).ready(function() {
  var html = "";
  var data = [
          { StuId:"1", fName:"Saman"},
          { StuId:"2", fName:"Marry"},
          { StuId:"3", fName:"Navjoth"},
          { StuId:"4", fName:"Jassu"}
          ]
  $.each(data, function(key, value){
    console.log(value + "--" + key);
    html += "<div><span>" + value.StuId + "</span><span>" + value.fName + "</span></div>";
  });
  $('body').html(html)
});

JavaScript 中的循环与其他语言不同。你需要闭包。

看看这里:

http://www.mennovanslooten.nl/blog/post/62

于 2011-06-02T07:39:38.700 回答
0

基础对象是一个 javascript 数组,所以你不能:

$.each(data, function(item) {
    var html = "<tr><td>" + item.StuId + "</td><td>" + item.fname + "</td></tr>";
    // etc.
});

?

于 2011-06-02T06:26:41.257 回答