【问题标题】:How to change order of JSON output如何更改 JSON 输出的顺序
【发布时间】:2013-07-13 22:01:13
【问题描述】:

我正在构建的应用程序的一部分获取播放列表的 JSON 提要,我的 jQuery each 代码是这样的:

$.each(data, function (i, data) {
                        var playlistTracks = '<li><span>' + data.TIT2 + '</span> &mdash; ' + data.TPE1 + '</li>';
                        $('section.player div.playlist-view ul.playlist').append(playlistTracks);
                    });

这会从上到下输出从最旧到最新歌曲的提要项。我想知道的是如何更改此输出的顺序以在顶部显示最新歌曲,并向下显示最旧的歌曲。谁能帮我重新安排一下?

在旁注中,我还想删除此播放列表中的 last 项目/歌曲,因为它的数据在音乐播放器中显示为“正在播放”。如何删除这一项?

谢谢!

【问题讨论】:

  • 最好由服务器处理。减少 FE 的处理总是一个更好的主意
  • @Sushanth-- 使用 jQuery ajax 直接从 JSON URL 加载提要,我无法控制。在这一点上我想我必须找到一个客户端解决方案

标签: jquery json sorting


【解决方案1】:

找出不同之处:)

$.each(data, function (i, data) {
                        var playlistTracks = '<li><span>' + data.TIT2 + '</span> &mdash; ' + data.TPE1 + '</li>';
                        $('section.player div.playlist-view ul.playlist').prepend(playlistTracks);
                    });

答案:切换 append 为 prepend

【讨论】:

  • 该死,这很容易!谢谢!!
【解决方案2】:

应该可以做一个反向for循环:

for(var i = data.length-1; i >= 0; i--)
{
    var playlistTracks = '<li><span>' + data[i].TIT2 + '</span> &mdash; ' + data[i].TPE1 + '</li>';
    $('section.player div.playlist-view ul.playlist').append(playlistTracks);
}

我不确定您要从哪一端删除该项目,但您可以通过更改任一端来跳过它

data.length-2

或

i >= 1

在你的 for 循环中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多