我在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,实在太精彩了。感激不尽!