var cityID="1"; var areaHtml=""; var storeHtml=""; //区域异步 function GetareaHtml(){ areaHtml=""; storeHtml=""; $.ajax({ url: "<{:U('Online/GetDistrictList')}>", type: 'post', dataType: 'json', data: {"CityId": cityID}, success: function (data) { //返回json {"msg":"u6210u529f","status":0,"data":[{"ID":16,"Name":"u5f90u6c47u533a"},{"ID":13,"Name":"u957fu5b81u533a"},{"ID":19,"Name":"u5b9du5c71u533a"}]} if (data.status == "0") { var temps=data['data'].length; for(i=0;i<data.data.length;i++){//data.data.length 火狐执行到这里会卡死 换成temps就正常了 if(i=0) { areaHtml+="<div class='menu-area active s"+i+"' name='s"+i+"'>"+data.data.Name+"</div>"; //执行到这里会报错 allocation size overflow }else{ // areaHtml+="<div class='menu-area s"+i+"' name='s"+i+"'>"+data.data.Name+"</div>"; } // storeHtml+="<div class='stext' id='s"+i+"'>"+data.data.Name+"</div>"; // storeHtml+=GetstoreHtml(); } } } }); $(".area-store-left").html(areaHtml); $(".area-store-right").html(storeHtml); }
备注:
为什么data.data会卡死,在PHPstorm下,可以看到第一个data被当做ajax的请求字符串了。
解决:使用data['data']['Name']这样来取参数