下面的数组,用javascript怎么写二级菜单?
province_class = function () {
var p = {
[["110000", "北京"], ["310000", "上海"]]
}
};
city_class = function () {
var c = [["110101", "东城", "110000"], ["110102", "西城", "110000"], ["110105", "朝阳", "110000"], ["110106", "丰台", "110000"], ["110107", "石景山", "110000"], ["110108", "海淀", "110000"], ["110109", "门头沟", "110000"], ["110111", "房山", "110000"], ["110112", "通州", "110000"], ["110113", "顺义", "110000"], ["110114", "昌平", "110000"], ["110115", "大兴", "110000"], ["110116", "怀柔", "110000"], ["110117", "平谷", "110000"], ["110228", "密云", "110000"], ["110229", "延庆", "110000"],
["310101", "黄浦", "310000"], ["310104", "徐汇", "310000"], ["310105", "长宁", "310000"], ["310106", "静安", "310000"], ["310107", "普陀", "310000"], ["310108", "闸北", "310000"], ["310109", "虹口", "310000"], ["310110", "杨浦", "310000"], ["310112", "闵行", "310000"], ["310113", "宝山", "310000"], ["310114", "嘉定", "310000"], ["310115", "浦东", "310000"], ["310116", "金山", "310000"], ["310117", "松江", "310000"], ["310118", "青浦", "310000"], ["310120", "奉贤", "310000"], ["310230", "崇明", "310000"]
]
};
你这个显然是不行的,数据结构都没有搞清楚,除非前面的都归属于北京后面全部属于上海,然后建立个索引表。但是不会有人这样搞的,明明可以用二维数组或者用其他数据结构的,干嘛把逻辑搞复杂呢?
好了,写个demo给你看一下,我这个是用了面向对象的思想,省份和城市是一一对应的,逻辑上很好理解
给你个完整的demo吧->
首先要写二级菜单的样式。
如下:
然后做好html的结构:
然后用js代码动态添加节点。
注意,为了方便遍历,这里的数据结构做了一点修改。
最终效果:
鼠标经过显示二级菜单。