我在Jquery中对json用$.each进行遍历,输出结果在firefox和chrome中的顺序是相反的。而ie和firefox相同。求别的遍历方法,不要在二者产生不同!
json 本身就是一种"无序"的数据类型, 如果非要有序 输出 ,你首先要把他所有属性变成一个有序的数组
这和各浏览器的Map键名的遍历方法相关,jquery只不过是包装了一下 for (key in obj)。
解决方法为将键名放入的数组,通过遍历数组的方式就不会有问题了。
var a = [];
$.each(obj, function(key, val) { a[a.length] = key; });
a.sort();
$.each(a, function(i, key) {
window.alert("key = " + obj[key]); // 访问JSON对象属性
});
太好了,其实上面的答案与你差不多,但胜在这句a[a.length] = key,实在太精彩了。感激不尽!