0

所以我使用 AJAX 从网站上抓取玩家姓名和他们各自的评分。我让 AJAX 返回一个 JSON 对象,我正在尝试使用 jQuery 将 JSON 对象的每个元素作为列表项附加到有序列表中。

这是代码:

$('#rankings_link').click(function(){
    $.ajax({
        dataType: 'json',
        url: '/rankings',
        type: 'get'
    }).done(function(received_data){
        for (var m = 0; m < received_data.length; m++) {
            $('#rankings ol').append('<li>' + received_data[m] + '</li>');
  }

但是当我查看我的 localhost:3000/rankings 页面时,它只是一大堆玩家姓名(正确排序),但根本没有格式化为列表。

这里发生了什么?

提前致谢, 马里格斯

4

2 回答 2

0

我会使用 $.each 循环对接收到的数据进行排序。json 对象是一组无序的键/值对。当您使用 $.each 循环时,您可以将它们分开并利用您正在寻找的值(玩家信息)。像这样:

$('#rankings_link').click(function(event){
    event.preventDefault();
    $.ajax({
        dataType: 'json',
        url: '/rankings',
        type: 'get'
    }).done(function(received_data){
        $.each(received_data, function(index, player){
            $('#rankings ol').append('<li>' + player + '</li>');
        });
    });
 });
于 2013-10-22T00:47:46.637 回答
0

http://www.w3schools.com/json/json_eval.asp

我会使用 eval 将您的 json 字符串转换为可以循环数组的对象

var rankings = eval ("(" + received_data + ")");

for (var m = 0; m < rankings.length; m++) {
        $('#rankings ol').append('<li>' + rankings[m].(whatever piece of data you want from your json object) + '</li>');

}

如果您仍然遇到问题,请告诉我您的 json 字符串是什么样的。

于 2013-04-29T21:42:45.583 回答