目前的制作任务中需要用到多级联动,于是想找一种通用的解决办法。花了一点时间,得到一个的解决方案。

演示:点击查看演示(链接已失效)

首先考察数据结构的设计。

通常做分类,我们需要一个类别编号和一个类别名称,因为从属关系,我们也需要一个上级类别的编号。那么我们得到的就是一个三个字段的一维表。实际应用中,可以使用数据库来实现,但是在这里我采用多维数组简单模拟该数据库(实际应用中可能也会考虑将数据库中的内容生成 JavaScript 代码)。代码如下:

JavaScript代码

var arrSorts = new Array(35);   
arrSorts[0] = ["1", "主类别一", "0"];   
arrSorts[1] = ["2", "主类别二", "0"];   
arrSorts[2] = ["3", "主类别三", "0"];   
arrSorts[3] = ["4", "小类一", "1"];   
arrSorts[4] = ["5", "小类二", "1"];   
...   
arrSorts[33] = ["34", "终极类十一", "24"];   
arrSorts[34] = ["35", "终极类十二", "24"];   
arrSorts[35] = ["36", "终极类十三", "24"];  

首先是一个一维数组,构成了数据库的行,它的每一个项又是一个包含三个项的一维数组,每个相对应数据库的一列,分别是“类别编号”、“类别名称”和“所属类别”。