Sla*_*dex 11 javascript jquery object
HTML:
<input id="sdata" type="hidden" value='{"1651":["12","1"],"1650":["30","0"],"1649":["20","0"],"1648":["13","2"],"1647":["11","0"],"1646":["10","0"],"1645":["12","0"],"1644":["8","0"],"1643":["16","1"],"1642":["10","1"],"1641":["10","0"],"1640":["18","3"]}' />
Run Code Online (Sandbox Code Playgroud)
JS:
var data = $.parseJSON($('#sdata').val());
$.each(data, function(id, sc) {
alert(id);
}
Run Code Online (Sandbox Code Playgroud)
OUT:1640,1641,1642,......,1651
如何以相反的顺序(例如1651,1650 ......)?
use*_*716 13
事实上,你不能以任何可靠的方式.因为您枚举了一个Object,所以从来没有保证订单.
如果需要有保证的数字顺序,则需要使用数组,然后向后迭代.
编辑:这会将您的对象转换为数组,并执行反向迭代.
请注意,它仅在所有属性都是数字时才有效.
var data = $.parseJSON($('#sdata').val());
var arr = [];
for( var name in data ) {
arr[name] = data[name];
}
var len = arr.length;
while( len-- ) {
if( arr[len] !== undefined ) {
console.log(len,arr[len]);
}
}
Run Code Online (Sandbox Code Playgroud)
xor*_*zor 11
还有另一个解决方案,一个相当简单的方法:
$(yourobject).toArray().reverse();
Run Code Online (Sandbox Code Playgroud)
而已.
小智 9
我尝试了这个,它对我来说很有效.
var data = $.parseJSON($('#sdata').val());
$.each(data.reverse(), function(id, sc) {
alert(id);
});
Run Code Online (Sandbox Code Playgroud)
唯一的变化是第2行的"reverse()".
小智 5
如果您需要做的只是从 JSON 中生成一些 HTML 并以相反的顺序将生成的元素放入容器中,则可以在构建 HTML 时使用 jQuery 的 prependTo 方法。
var container = $('<div />');
$.each(data, function (key, value) {
$('<div>' + value + '</div>').prependTo(container);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25085 次 |
| 最近记录: |