Saya tidak mempunyai apa-apa untuk dilakukan, jadi saya sedang meneliti laman web e-dagang Kebetulan seorang rakan membuka kedai harta karun tertentu, dan saya sangat gembira melihat kepelbagaian kategori produk yang mempesonakan. Jadi saya melakukan sedikit kajian.
Mendapatkan kategori produk semuanya dilakukan oleh AJAX, dan kerana saya perlu log masuk, saya tidak menghadapi masalah, jadi saya mengambil kaedah paling mudah, pergi ke latar belakang dan terus membuka konsol, tampal kod dan jalankannya, hehe, semua kategori dijalankan kepada CAT dalam data.
Rookie berlatih, sila beri saya nasihat.
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();
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.