jquery - $.each 不按给定顺序渲染 JSON

标签 jquery

这是我来自服务器的 JSON

"bids":{"51200512":{"bidAmt":"Rs.63,736,494.00","date":"2014 12 12 09:49:59 AM","bidder":"Amit"},

"69120512":{"bidAmt":"Rs.734,294.00","date":"2014 12 12 09:51:29 AM","bidder":"Tata India Pvt Ltd"},

"66560256":{"bidAmt":"Rs.87,265.00","date":"2014 12 12 09:52:31 AM","bidder":"Tata Telecommunication servoices <i>asas</i> Telec"},

"69120768":{"bidAmt":"Rs.63,737.00","date":"2014 12 12 09:52:05 AM","bidder":"Tata India Pvt Ltd"},

"69120256":{"bidAmt":"Rs.63,736.00","date":"2014 12 12 09:50:50 AM","bidder":"Tata India Pvt Ltd"}}}

在火狐中它显示了正确的顺序,即

Rs.63,736,494.00
Rs.734,294.00
Rs.87,265.00
Rs.63,737.00
Rs.63,736.00

但在 Chrome 中:

Rs.63,736,494.00
Rs.734,294.00
Rs.63,736.00
Rs.734,294.00
Rs.63,737.00

这是我解析 JSON 的方式

 $.each(bids,function(k,v){
       _tbl+="<tr bd='y'><td><a href=\""+_this.options.context+"/profile/"+k+"\">"+v.bidder+"</a><br/><small><span class='timeago' title='"+v.date+"'>"+v.date+"</span><small></td><td>"+v.bidAmt+"</td></tr>";
 });}

$("#showBidModel table").append(_tbl);

最佳答案

Javascript不保证对象的顺序。请参阅Does JavaScript Guarantee Object Property Order? .

Chrome 碰巧首先按排序顺序对数字键进行迭代。如果需要显式排序,请使用数组。

"bids": [
    {"id": "69120512", "bidAmt":"Rs.734,294.00","date":"2014 12 12 09:51:29 AM","bidder":"Tata India Pvt Ltd"},
    {"id": "66560256", "bidAmt":"Rs.87,265.00","date":"2014 12 12 09:52:31 AM","bidder":"Tata Telecommunication servoices &lt;i&gt;asas&lt;/i&gt; Telec"},
    ...
]

关于jquery - $.each 不按给定顺序渲染 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27437256/

相关文章:

jquery - CSS3动态变换使用jQuery翻译背景

jquery - 在我单击表单字段外部之前,不会触发更改事件

javascript - 在动态创建的字段上捕获 javascript 事件

jquery - 负边距点击应该不起作用

jquery - 使用 jQuery/CSS 查找所有元素中最高的

jquery - 如何停止选项卡中的视频?

javascript - Jquery如何在表中显示特定的输入值

javascript - 重新加载页面后在javascript函数中通过id更改div的颜色

jquery - 表单中图像格式化程序的问题

php - 清理ajax中使用的$_GET var