var menuArr = new Array();
menuArr[1] = ["中国", 0];
menuArr[2] = ["美国", 0];
menuArr[3] = ["日本", 0];
menuArr[4] = ["浙江", 1];
menuArr[5] = ["福建", 1];
menuArr[6] = ["东京", 3];
menuArr[7] = ["杭州", 4];
menuArr[8] = ["温州", 4];
menuArr[9] = ["鹿城", 8];
这个结构能换下就最好啦
menuArr[1] = ["中国", 0];
menuArr[2] = ["美国", 0];
menuArr[3] = ["日本", 0];
menuArr[4] = ["浙江", 1];
menuArr[5] = ["福建", 1];
menuArr[6] = ["东京", 3];
menuArr[7] = ["杭州", 4];
menuArr[8] = ["温州", 4];
menuArr[9] = ["鹿城", 8];
这个结构能换下就最好啦
就是
<script type="text/javascript">
Array({
地区 : 河北省,
Id : 1,
父级 : null,
下级 : Array({
地区 : 秦皇岛市,
Id : 2,
父级 : 操作的过程中取上级的那个对象的引用放这里,
下级 : Array({
地区 : 海港区,
Id : 3,
父级 : 操作的过程中取上级的那个对象的引用放这里,
下级 : null
}, {
地区 : 山海关区,
Id : 4,
父级 : 操作的过程中取上级的那个对象的引用放这里,
下级 : null
}, {
地区 : 北戴河区,
Id : 5,
父级 : 操作的过程中取上级的那个对象的引用放这里,
下级 : null
})
})
});
</script>
取名称?
和你那个是一样的。。只不过就是录入数据的时候麻烦一些。。
取名称只是o.地区 即可啊。
menuArr[i][0]和这个基本没有区别的啊。
只不过是
Array[i].地区嘛。每个显示的select都可以设置一个关联的。
比如说从最底层的省开始
它创建的select有个.root 就连接到 对应的o上。
这样你通过函数传递this然后在去引用下级很方便的就可以找出市,取名字和id直接取就可以嘛。。
var json = function (i, n, p) {
var wc = this;
wc.id = i;
wc.name = n;
wc.parent = p || null;
wc.nodes = new Array;
};
json.prototype.add = function (i, n) {
var wc = this;
return wc.nodes[wc.nodes.length] = new json(i, n, wc);
}var c = new json(1, "河北省"), t = c.add(2, "秦皇岛市");
t.add(3, "海港区");
t.add(4, "山海关区");
t.add(5, "北戴河区");
window.onload = function () {
var wc = document.getElementById("wc"), op, i;
for (i = 0 ; i < c.nodes.length ; i ++) {
op = document.createElement("option");
op.root = c.nodes[i];
op.innerHTML = c.nodes[i].name;
op.value = c.nodes[i].id;
wc.appendChild(op);
}
};
</script>
<select id="wc" onblur="alert(this.value);"></select>
简单的描述就是这样的。。
我得去敢东西了。。北。。
寒。。
这个是麻烦。
如果只是nodes = Array的话的确是要便利arr还有便利option
不过考虑顺序的话可以加一个Object。。Objcet存储数据,让Array存储引用。。
第一次便利的时候直接让Option通过Array的引用顺序,引用Object数据。
这样修改数据的时候只需要用dom操作Option,然后便利Array的引用顺序就可以了。。
如果要所有的话需要加个Object
如果只是插入的话用dom的insertBefore和数组的
var ary = [1, 2, 4, 5];
ary.splice(2, 1, 3, 4);
alert(ary);
就可以啦。
因为op.root = c.nodes[i];是直接引用的对象。所以,不需要update全部数据。。
^o^
=
如果要查询的话需要加个Object- -
menuArr[9] = ["鹿城", 8];
var menuArr = new Array();
menuArr[1] = ["中国", 0];
menuArr[2] = ["美国", 0];
menuArr[3] = ["日本", 0];
menuArr[4] = ["印度", 0];
menuArr[5] = ["浙江", 1];
menuArr[6] = ["福建", 1];
menuArr[7] = ["东京", 3];
menuArr[8] = ["杭州", 4];
menuArr[9] = ["温州", 4];
menuArr[10] = ["鹿城", 8];
to hbhbhbhbhb1021我还以为你的那个是说我推荐的方法呢。。
要是这种的话。menuArr[5] = ["浙江", 1];
加个子ID的字段。。
然后搜索对照这找就不会有问题啦
数据表结构就这里的三个字段
ID,名称,父ID
要加一个菜单,就加到后面,不用担心前面的子ID会改变啊,要不然还能用吗??
menuArr[1] = ["中国", 0];
menuArr[2] = ["美国", 0];
menuArr[3] = ["日本", 0];
menuArr[4] = ["浙江", 1];
menuArr[5] = ["福建", 1];
menuArr[6] = ["东京", 3];
menuArr[7] = ["杭州", 4];
menuArr[8] = ["温州", 4];
menuArr[9] = ["鹿城", 8];
menuArr[10] = ["印度", 0];