<div><span onclick="expand(1)">结点</span></div>
<div id="tree1" style="padding-left:12;display:none">
插入数据在这里
</div>

解决方案 »

  1.   


        上面的代码好像没有实现动态--分次--读入数据这样的功能,还是属于一次把各级数据全部都写好的类型,还是用的display属性作为展开和关闭的开关。    我希望实现的是:myTree.html中只有一级结点的显示源码。二级数据的读入是点击其父
    结点之后才进行的。如下:    <div><span onclick="expand(1)"> 语言 </span></div>
        <div><span onclick="expand(2)"> 工具 </span></div>    在expand(1)函数中,要执行的动作是:        1。找到 结点1(即'语言'结点)的所有子结点。
                (即array21中的内容"java"和"c")
            2。根据"java"和"c"两个结点的层次,决定它们显示的位置和图标;
                 (即二级结点的位置,图标是叶子结点的图标)
            3。最重要、也是我始终搞不懂的是:
               把新生成的结点显示出来,插入到应该插入的地方。它怎么才能
               插入到两个一级结点之间?
      

  2.   

    生成的结点用我上面写的形式,而是否有tree1,根据它是否有孩子来判断
    expand函数中判断是否已加载,没加载的就去请求,将数据插入tree1中
      

  3.   

    呵呵,我有些明白了。谢谢阿信!不过怎么判断在tree1中是否有数据?怎么将数据插入到tree1中?是不是用 document.getElementById("tree1").elements.length==0来判断是否有数据,同时用 document.getElementById("tree").elements[index]=...来插入数据?我对JavaScript中的各个对象到底有哪些可用的函数,怎么操作实在是搞不懂。阿信,推荐一本有关API的好书好吗?
      

  4.   

    或者说,怎么判断是否已经加载了数据?如果没有加载,我找到了相应的数据后应该怎么把数据插入到tree1里面?
      

  5.   


    哈哈!I get it!
    使用 tree1.innerHTML来判断就可以了。如果是空,就代表它的子结点没有加载进来,把数据加载进来后就行了。下面一个问题是:  我调用eval("tree1.innerHTML='<div>Loading...<div>'");怎么才能刷新现有页面呢?