Je n'avais rien à faire, alors je faisais des recherches sur le site de commerce électronique. Il est arrivé qu'un ami ouvrait une certaine boutique au trésor, et j'étais très heureux de voir la variété éblouissante des catégories de produits. J'ai donc fait une petite recherche.
L'obtention des catégories de produits est entièrement effectuée par AJAX, et comme je dois me connecter, je n'ai aucun problème, j'ai donc pris la méthode la plus simple, aller en arrière-plan et ouvrir directement la console, coller le code et l'exécuter, hehe, toutes les catégories sont exécutées vers CAT dans les données.
Rookie s'entraînant, merci de me donner quelques conseils.
var CAT = { //[{id: '', name: '', data: [{id: '', name: '', data:[{id: '', name: ''}]},{}, ...]}, {} ...] data: [], url: function(){ return 'http://upload.taobao.com/auction/json/reload_cats.htm?t='+Math.random(); }, init: function(){ var url = CAT.url(), post_data = 'path=all'; CAT.ajax(url, post_data, CAT.first_r); }, first_r: function(data){ var rs = data[0]['data'], first_l, first_d, i, j, second_id, second_d, func; for(i=0;i<rs.length; i++){ //保存一级分类 first_d = rs[i]['data']; first_l = []; for(j=0; j<first_d.length; j++){ //保存二级分类同时查询三级分类,并提供存储数据的容器 second_id = first_d[j]['sid']; second_d = { 'id': first_d[j]['sid'], 'name': first_d[j]['name'], 'spell': first_d[j]['spell'], 'data': [] }; first_l.push(second_d); func = CAT.second_r(second_d['data']); CAT.ajax(CAT.url(), 'path=next&sid='+second_id, func); } CAT.data.push({ 'id': rs[i]['id'], 'name': rs[i]['name'], 'data': first_l }) } }, second_r: function(container){ return function(data){ if(data.length<1){ return } var rs = data[0]['data'], i, j, here, third_d; for(i=0; i<rs.length; i++){ third_d = rs[i]['data']; for(j=0; j<third_d.length; j++){ here = third_d[j]; container.push({ 'id': here['sid'], 'name': here['name'], 'spell': here['spell'] }); } } } }, ajax: function(url, post_data, func){ var xhr = new XMLHttpRequest(), result; xhr.open('POST', url, true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send(post_data); xhr.onreadystatechange=function(){ if (xhr.readyState==4 && xhr.status==200){ result = JSON.parse(xhr.responseText); func(result); }else if(xhr.readyState==4 && (!xhr.status==200)){ console.log('Ajax Return Error!'); } } } }; CAT.init();
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.