咱们把idx和obj都打印出来看看,究竟是什么东西json
var json1 =[{"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"}, {"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"} ]; $.each(json1, function(idx, obj) { console.log(idx); console.log(obj); console.log(obj.tagName); });
控制台截图数组
咱们能看到,idx是索引,obj是对象,tagName能够经过obj直接拿到app
var json2 = {"list":[ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"}, {"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"} ],"total":5}; $.each(json2,function(index,element){ console.log("index:"+index); console.log("element:"+element); $.each(element,function(name,value){ console.log("name:"+name); console.log("value:"+value); console.log("value.tagName:"+value.tagName); }) });
在这里咱们用多层嵌套来实现,而不能用单层循环,经过element.list[i].tagName,element.list[0].tagName等等,任未尝试都是徒劳的spa
必需要从Object里面拿,xx.xx格式才是正确,xx.xx.xx或者xx.xx.xx.xx,固然JavaScript的for循环却能够这么取数据。code
接下来咱们看看打印出来什么东西对象
很清晰的看出,index打印出了外层的list和total,即为索引;element打印出list的五个对象,因此没法单层拿出tagName,最后一个element打印出了total的值blog
name是对象的索引,内层把value循环遍历出来,咱们能看到一个对象,总共五个,而后经过这一个对象拿出其tagName的值索引
JavaScript的for遍历二层jsonip
for (var i=0;i<json2.list.length;i++){ alert(i + json2.list[i].tagName); }
我的感受,原生的简洁易懂element