HTML中树的实现方法

利用javascirpt我们可以很容易的在HTML中实现树,而不需要使用ASP,JSP,PHP等等编写动态程序,当然如果要和数据库结合,下面的代码也很容易移植。

首先,我们看一下实现这个树形结构的javascript代码。

common.js

<!--
function showCurrentSection()
{  
 var objCurrentSection = document.getElementById("navcurrentsection");  
 if (objCurrentSection != null)
 {
  objCurrentSection.style.display = "block";   
  objCurrentSection.parentElement.childNodes[0].className = "open";
  if (objCurrentSection.parentElement.parentElement.nodeName == "UL")
   showSection(objCurrentSection.parentElement.parentElement);  
 }
}

function showSection(objSection)

 objSection.style.display = "block";
 objSection.parentElement.childNodes[0].className = "open"; 
 if (objSection.parentElement.parentElement != null && objSection.parentElement.parentElement.nodeName == "UL")
  showSection(objSection.parentElement.parentElement);
}
-->

下面是实现树的静态HTML文件,很简单的啊。

example1.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>Current Tree Node Opener</title>  
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <link rel="stylesheet" href="tree.css" type="text/css" media="screen" />    
  <meta http-equiv="expires" content="-1" />
  <meta http-equiv="pragma" content="no-cache" />
  <meta name="robots" content="none" />
  <meta name="rating" content="all" />
  <meta name="author" content="Bluegrass Technologies" />
  <meta name="email" content="paulw@bluegrassgroup.com" />  
  <script language="javascript" type="text/javascript" src="common.js"></script>
 </head>
 <body οnlοad="showCurrentSection();">
  <ul id="menu">
   <li><a href="a.htm">Section 1</a></li>
   <li><a href="">Section 2</a>
    <ul>
     <li><a href="">Section 2.1</a></li>
     <li><a href="">Section 2.2</a></li>
     <li><a href="">Section 2.3</a>
      <ul id="navcurrentsection">
       <li><a href="">Section 2.3.1</a></li>
       <li><a href="">Section 2.3.2</a></li>       
      </ul>
     </li>
     <li><a href="">Section 2.4</a></li>
    </ul>
   </li>
   <li><a href="">Section 3</a></li>   
  </ul>
 </body>
</html>

下面是树的样式表

tree.css

body
{
 font-family: Verdana, Arial, Sans-Serif;
 font-size: small;
 background-color: #ffffff; 
}

ul#menu
{
 border: solid 1px #333333;
 border-top-width: 15px;
 padding: 10px;
 padding-top: 6px;
 margin: 0px;
 width: 200px;
}

ul#menu li
{
 margin: 0px;
 list-style-type: none;  
 border: solid 1px #ffffff;
}

ul#menu li ul
{
 margin: 0px 0px 0px 15px;
 display: none;
}

ul#menu li a
{
 background-image: url(closed.gif);
 background-repeat: no-repeat;
 background-position: 0px 4px;
 text-indent: 15px;
 display: block;
 text-decoration: none; 
 color: #333333;
}

ul#menu li a:hover
{
 color: #000000;
 background-color: #eeeeee;
 background-image: url(open.gif);
}

好了,到这里为止,我们已经实现了这个树,大家不妨亲自演示一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值