100分!!!! 很有挑战性的问题!
详见源代码 !!
http://202.104.30.124/english/ths.zip
Email: davis_ye@hotmail.com
谢谢 各位!!
问题点数:100、回复次数:12Top
1 楼emu(月亮不在手指尖上)回复于 2002-06-15 18:36:04 得分 0
问题本身不难,你的问题在于把它们全部放在一个table中了,所以不好处理。我看过别人的树是用table嵌套来做的,我用的是div嵌套。这样子要上溯下溯节点就比较方便。
用xml对象应该更简单,可惜我也没试过Top
2 楼davisye(Instant Message)回复于 2002-06-15 20:14:10 得分 0
我的树不需要展开和关闭的.. 所以用什么来做都一样的.. 我只要实现CheckBox的功能就可以了...Top
3 楼chenzengxi(阿哈哈)回复于 2002-06-15 21:02:59 得分 100
本来想试试的,发现你的checkbox name还分了几种情况命名,这样就很麻烦了,你应该使用同样的命名规则,方便程序识别。
var moCheckbox = new Array;
function getcheckbox(){
var loC = document.all.tags("INPUT");
moCheckbox = new Array;
for (var i=0; i<loC.length; i++){
if (loC[i].type=="checkbox"){
loL = loC[i].name.split("_");
moCheckbox[moCheckbox.length] = [loC[i],loL[2],loL[3]];
}
}
}
上面这个函数,假定你的命名是chk_node_2_3的形式,得出一个数组,分别为[Checkbox对象,父id,自己id],
根据这个数组就可以进行你想要的操作了,但是你的命名不是完全这样,做起来就比较麻烦了。Top
4 楼chenzengxi(阿哈哈)回复于 2002-06-15 21:07:47 得分 0
chk_model_2 chk_node_7_5 这两种还好,至少样子差不多.
chk_leaf_6 这种就不好了,都不知道父是谁.Top
5 楼chenzengxi(阿哈哈)回复于 2002-06-15 21:15:51 得分 0
建议类似这样,不然的话,你的东西可能都没法实现了.
chk_model_2_0
chk_node_2_5
chk_leaf_5_1Top
6 楼emu(月亮不在手指尖上)回复于 2002-06-15 22:03:11 得分 0
即使你不要展开收缩,用对象嵌套也比较好实现你要的功能啊。
懒猫说的有道理,通过合理的命名规则来事先更容易。Top
7 楼chenzengxi(阿哈哈)回复于 2002-06-16 13:30:28 得分 0
楼主那去啦???Top
8 楼emu(月亮不在手指尖上)回复于 2002-06-16 13:38:58 得分 0
呵呵,周末放假去了嘛。不象咱们这些没周末过的……Top
9 楼kenwoodking(爱的牧羊人)回复于 2002-06-16 15:01:33 得分 0
学生的话,除了周末还有更多的闲散时间……向我这样的毕业班更不用说……还有,游戏……学生阿。可惜就快结束了。Top
10 楼davisye(Instant Message)回复于 2002-06-16 16:25:28 得分 0
谢谢大家这么热情回答我的问题... 命名是我自已做测试的时候用的.谢谢大家. 等明天做测试之后不懂再请教大家 .. 谢谢!Top
11 楼davisye(Instant Message)回复于 2002-06-16 20:20:20 得分 0
各位能不能说详细一点... 我的树会有多个模块的.这里给出的只是第二个模块... 谢谢 !
chenzengxi(懒猫) 能不能留下你的QQ或其它什么的..... 我的QQ是1793766
msn: davis_ye@hotmail.com .
icq: 1793766
ths again !Top
12 楼emu(月亮不在手指尖上)回复于 2002-06-16 20:57:54 得分 0
统一了命名规则,通通叫做chk_node_??就好做了嘛,每个节点通过对自己的名字做substring就可以得到父节点,或者通过名字加“_??”获得子节点。
要不就给没个节点一个parent属性,指向父节点,跟数据结构里面说的树就差不多了,很好遍历。再要方便一点就同时再给个children属性呵呵,事先遍历一次生成children之后要遍历想都不用想了。Top




