JavaScript
$(function() {
var data = [{"id":1,"title":"餐饮美食","parent_id":0,"sort":1},{"id":2,"title":"丽人美发","parent_id":0,"sort":1},{"id":3,"title":"KTV酒店","parent_id":0,"sort":1},{"id":4,"title":"啊三大的","parent_id":0,"sort":1},{"id":5,"title":"休闲娱乐","parent_id":0,"sort":1},{"id":6,"title":"自助火锅","parent_id":0,"sort":1},{"id":7,"title":"玩","parent_id":0,"sort":1},{"id":8,"title":"餐饮吧","parent_id":1,"sort":2},{"id":9,"title":"剪发吧·","parent_id":2,"sort":2},{"id":10,"title":"ktv哦","parent_id":3,"sort":2},{"id":11,"title":"啊飒飒色彩哦","parent_id":4,"sort":2},{"id":12,"title":"休闲养生","parent_id":5,"sort":2},{"id":13,"title":"火锅·海底捞","parent_id":6,"sort":2},{"id":14,"title":"电影","parent_id":7,"sort":2},{"id":15,"title":"美食1","parent_id":1,"sort":0},{"id":16,"title":"美发2","parent_id":1,"sort":0},{"id":17,"title":"美发3","parent_id":1,"sort":0},{"id":18,"title":"美发4","parent_id":1,"sort":0},{"id":19,"title":"美发5","parent_id":2,"sort":0},{"id":20,"title":"美发6","parent_id":2,"sort":0},{"id":21,"title":"美发7","parent_id":2,"sort":0},{"id":23,"title":"333","parent_id":1,"sort":0},{"id":24,"title":"xlh2","parent_id":1,"sort":0}];
var s1 = $('#select1'),
s2 = $('#select2'),
data1 = [], // 存放parent_id为0的数据
data2 = {}, // 按照id不同分开的parent_id不为0的数据
i, html;
// 总之遍历下源数据把它们放到data1和data2里了
for(i = 0; i < data.length; i++) {
if (data[i].parent_id === 0) {
data1.push(data[i]);
} else {
if (!data2[data[i].parent_id]) {
data2[data[i].parent_id] = [];
}
data2[data[i].parent_id].push(data[i]);
}
}
// 用data1里的数据生成html代码,插入到select1里
html = '';
for(i = 0; i < data1.length; i++) {
html += '<option value="' + data1[i].id + '">' + data1[i].title + '</option>';
}
s1.html(html);
// 给select1绑定change事件,回调函数里根据当前选中的id找到data2里对应的数据
// 又是一个循环拼接出html代码,插入到select2里
s1.on('change', function() {
var id = this.value;
html = '';
if (data2[id]) {
for (i = 0; i < data2[id].length; i++) {
html += '<option value="' + data2[id][i].id + '">' + data2[id][i].title +...