如何用javascript构建一个树型结构啊。

dawangzi16 2003-07-30 03:04:24
我用的是xsl,它搜索xml得到一些结果并转化为html,版面和csdn的论坛类似,也是三框架结构,我找了好长时间csdn左下框架的构建树源码。可惜不能如意。请帮忙!用javascript帮我建一个,允许我将查询的值动态添加进去。
...全文
50 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawangzi16 2003-08-03
  • 打赏
  • 举报
回复
你的解答好像不适合我的动态树型结构的生成:根据对一个不确定的xml文件的节点的查询,可能会是不确定多层结构的生成.
id就不能预先确定了?id是常量,请问能不能动态确定??这是我头疼的问题.
可能一种情况为下!
-
1-- -
1--- -
1-------x
1-------x
1----X
+
-
1-- -
1--- -
1-------x
1-------x
1----X

AgathaZ 2003-08-01
  • 打赏
  • 举报
回复
上面是我随意写的几个父类,和子类,想加多少可以加多少,只不过要把numTotal和scores做稍加改动,试试看,行不?
AgathaZ 2003-08-01
  • 打赏
  • 举报
回复
第二步:把如下代码加入<body>区域中
<div id='KB1Parent' class='parent'><a href="#" onClick="expandIt('KB1'); return false">
+Parent1</a></div>
<div id='KB1Child' class='parent'>
Child1</a><br></div>
<div id='KB2Parent' class='parent'><a href="#" onClick="expandIt('KB2'); return false">
+Parent2</a></div>
<div id='KB2Child' class='child'>
Child2</a><br></div>
<div id='KB3Parent' class='parent'><a href="#" onClick="expandIt('KB3'); return false">
+Parent3</a></div>
<div id='KB3Child' class='child'>
Child13</a><br></div>
<SCRIPT>
numTotal=4;
scores[1]='KB1';
scores[2]='KB1';
scores[3]='KB2';
scores[4]='KB3';
</SCRIPT>
AgathaZ 2003-08-01
  • 打赏
  • 举报
回复
第一步:把如下代码加入<head>区域中

<script language="JavaScript1.2">
scores = new Array(20);
var numTotal=0;
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) {
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else {
write(".child {display:none}")
}
write("</STYLE>");
}
}
function getIndex(el) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == el) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function initIt(){
if (!ver4) return;
if (NS4) {
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
divColl = document.all.tags("DIV");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
}
}
}
function expandIt(el) {
if (!ver4) return;
if (IE4) {
whichEl1 = eval(el + "Child");
for(i=1;i<=numTotal;i++){
whichEl = eval(scores[i] + "Child");
if(whichEl!=whichEl1) {
whichEl.style.display = "none";
}
}
whichEl1 = eval(el + "Child");
if (whichEl1.style.display == "none") {
whichEl1.style.display = "block";
}
else {
whichEl1.style.display = "none";
}
}
else {
whichEl = eval("document." + el + "Child");
for(i=1;i<=numTotal;i++){
whichEl = eval("document." + scores[i] + "Child");
if(whichEl!=whichEl1) {
whichEl.visibility = "hide";
}
}
if (whichEl.visibility == "hide") {
whichEl.visibility = "show";
}
else {
whichEl.visibility = "hide";
}
arrange();
}
}
onload = initIt;
</script>
dawangzi16 2003-07-31
  • 打赏
  • 举报
回复
难道没人知道如何写吗,我惨了。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧