DOM编程实例


 

DOM编程步骤:

1、 定义数据封装的标签(定义界面,通过html将数据封装)

2、 定义一些静态的样式(通过css

3、 确定事件源

4、 注册事件

5、 事件处理

注:在处理过程中需要明确被处理的区域

 

动态改变字体的大小、颜色、背景属性:

<!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">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<!-- TemplateBeginEditable name="doctitle" -->

<title>动态改变文字</title>

<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="head" -->

<!-- TemplateEndEditable -->

 

<script>

function changeSize(className)

{

       var newsNode=document.getElementById("divid");

       newsNode.className=className;

}

</script>

<style type="text/css">

div,.norm

{

       background-color:#CCCCCC;

       color:#0000FF;

       font-size:16px;

       width:500px;

}

.max

{

       background-color:#00FF99;

       color:#FF3333;

       font-size:24px;

       width:500px;

}

.min

{

       background-color:#FFFF66;

       color:#000000;

       font-size:10px;

       width:500px;

}

</style>

</head>

 

<body>

<h2>新闻标题</h2>

<a href="javascript:void(0)"οnclick="changeSize('max')"></a>

<a href="javascript:void(0)"οnclick="changeSize('norm')"></a>

<a href="javascript:void(0)"οnclick="changeSize('min')"></a><br/>

<div id="divid" class="norm">

滚滚长江东逝水<br/>

浪花淘尽英雄<br/>

是非成败转头空<br/>

青山依旧在<br/>

几度夕阳红<br/>

白发渔樵江渚上<br/>

惯看秋月春风<br/>

一壶浊酒喜相逢<br/>

古今多少事<br/>

都付笑谈中<br/>

</div>

</body>

</html>

展开闭合效果:

 

获取时间源对象的两种方式:

1、  通过event对象的srcElement属性

2、  将事件源对象通过this传入

 

<!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">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<!-- TemplateBeginEditable name="doctitle" -->

<title>展开闭合效果</title>

<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="head" -->

<!-- TemplateEndEditable -->

<script type="text/javascript">

       function list()

       {

              var dtNode=event.srcElement;

              var dlNode=dtNode.parentNode;

              if(dlNode.className=="open")

              {

                     dlNode.className="close";

                    

              }

              else

              {

                     dlNode.className="open";

              }

       }

</script>

<style type="text/css">

.open{

       overflow:visible;

       }

.close{

       overflow:hidden;

       }

dl{

       overflow:hidden;

       height:16px;

       }           

</style>

</head>

 

<body>

              <dl>

                     <dt οnclick="list()">古诗词</dt>

                    

                     <dd>滚滚长江东逝水</dd>

                     <dd>浪花淘尽英雄</dd>

                     <dd>是非成败转头空</dd>

                     <dd>青山依旧在</dd>

                     <dd>几度夕阳红</dd>

                     <dd>白发渔樵江渚上</dd>

                     <dd>惯看秋月春风</dd>

                    

              </dl>

              <dl>

                     <dt οnclick="list()">古诗词</dt>

                     <dd>滚滚长江东逝水</dd>

                     <dd>浪花淘尽英雄</dd>

                     <dd>是非成败转头空</dd>

                     <dd>青山依旧在</dd>

                     <dd>几度夕阳红</dd>

                     <dd>白发渔樵江渚上</dd>

                     <dd>惯看秋月春风</dd>

                    

              </dl>

              <dl>

                     <dt οnclick="list()">古诗词</dt>

                     <dd>滚滚长江东逝水</dd>

                     <dd>浪花淘尽英雄</dd>

                     <dd>是非成败转头空</dd>

                     <dd>青山依旧在</dd>

                     <dd>几度夕阳红</dd>

                     <dd>白发渔樵江渚上</dd>

                     <dd>惯看秋月春风</dd>

              </dl>

</body>

</html>

单个展开实例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>无标题文档</title>

<style type="text/css">

table{

       border:#FF0000 1px solid;

       background-color:#00CC33;

       }

table td{

       border:#3300FF 1px solid;

       background-color:#33CCFF;

       }

table td div{

       background-color:#00CC99;

       display:none;

       }

.open{

       display:block;

       }

.close{

       display:none;

       }

</style>

<script type="text/javascript">

       function list2()

       {

              var aNode=event.srcElement;

              var tdNode=aNode.parentNode;

              var divNode=tdNode.getElementsByTagName("div")[0];

              var table=document.getElementsByTagName("table")[0];

              var divNodes=table.getElementsByTagName("div");

              for(var x=0;x<divNodes.length;x++)

              {

                     if(divNodes[x]==divNode)

                           

                                   {

                                          if(divNode.className=="open")

                                          {

                                                 divNode.className="close";

                                          }

                                          else

                                          {

                                                 divNode.className="open";

                                          }

                                   }

                            else divNodes[x].className="close";   

              }

       }    

</script>

</head>

<body>

<table>

       <tr>

              <td>

                     <a href="javascript:void(0)" onClick="list2()">好友菜单列表</a>

                     <div>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                     </div>    

              <td>

       </tr>

      

              <tr>

              <td>

                     <a href="javascript:void(0)" onClick="list2()">好友菜单列表</a>

                     <div>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                     </div>

              <td>

       </tr>

              <tr>

              <td>

                     <a href="javascript:void(0)" onClick="list2()">好友菜单列表</a>

                     <div>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                    我们都是好朋友<br>

                     </div>

              <td>

       </tr>

</table>

</body>

</html>

实现点击自动排序功能:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>无标题文档</title>

<style>

table{

       border:#006699 1px solid;    

       width:600px;

       }

table tr,td{

       border:#009999 1px solid;

       text-align:center;

      

}

</style>

<script>

       var flag=true;

       function sorttab()

       {

              //1、获取表格中所有的行对象

              var tabNode=document.getElementsByTagName("table")[0];

              var trs=tabNode.rows;

              //2、定义临时容器,将表格中需要参与排序的行对象临时存储

              var arr=new Array();

              for(var x=1;x<trs.length;x++)

              {

                     arr[x-1]=trs[x];

              }

              for(var x=0;x<arr.length;x++)

              {

                     for(var y=x+1;y<arr.length;y++)

                     {

                            if(parseInt(arr[x].cells[1].innerText)>parseInt(arr[y].cells[1].innerText))

                            {

                                   var temp=arr[x];

                                   arr[x]=arr[y];

                                   arr[y]=temp;

                            }

             

                     }

              }

              if(flag)

              {

                     for(var x=0;x<arr.length;x++)

                     {

                            document.getElementsByTagName("tbody")[0].appendChild(arr[x]);

                     }

                     flag=false;

              }

              else

              {

                     for(var x=arr.length-1;x>=0;x--)

                     {

                            document.getElementsByTagName("tbody")[0].appendChild(arr[x]);

                     }

                     flag=true;

              }

       }

 

</script>

</head>

<body>

<table>

       <tr>

              <td>姓名</td>

              <td><a href="javascript:void(0)" onClick="sorttab()">年龄</a></td>

              <td>地址</td>

       </tr>

              <tr>

              <td>张三</td>

              <td>30</td>

              <td>北京</td>

       </tr>

              <tr>

              <td>李四</td>

              <td>34</td>

              <td>上海</td>

       </tr>

              <tr>

              <td>王五</td>

              <td>23</td>

              <td>广州</td>

       </tr>

       <tr>

              <td>赵六</td>

              <td>27</td>

              <td>南京</td>

       </tr>

       <tr>

              <td>周七</td>

              <td>25</td>

              <td>大连</td>

       </tr>

       <tr>

              <td>孙八</td>

              <td>29</td>

              <td>铁岭</td>

       </tr>

</table>

</body>

</html>

 

表格的行间隔显示和高亮效果:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>无标题文档</title>

<style type="text/css">

table{

       border:#006699 1px solid;    

       width:600px;

       }

table tr,td{

       border:#009999 1px solid;

       text-align:center;

}

.one

{

       background-color:#FFCC00;

}

.two

{

       background-color:#CCFF99;

}

.over

{

       background-color:#FF00FF;

}

 

</style>

<script type="text/javascript">

var name;

function trcolor()

{

       var tabNode=document.getElementsByTagName("table")[0];

       var trs=tabNode.rows;

      for(var x=1;x<trs.length;x++)

       {

              if(x%2==1)

                     trs[x].className="one";

              else

                     trs[x].className="two";

              trs[x].οnmοuseοver=function()

              {

                     name=this.className;

                     this.className="over";

              }

              trs[x].οnmοuseοut=function()

              {

                     this.className=name;

              }

       }

}

window.οnlοad=trcolor;

</script>

</head>

<body>

<table>

       <tr>

              <td>姓名</td>

              <td><a href="javascript:void(0)" onClick="trcolor()">年龄</a></td>

              <td>地址</td>

       </tr>

              <tr>

              <td>张三</td>

              <td>30</td>

              <td>北京</td>

       </tr>

              <tr>

              <td>李四</td>

              <td>34</td>

              <td>上海</td>

       </tr>

              <tr>

              <td>王五</td>

              <td>23</td>

              <td>广州</td>

       </tr>

       <tr>

              <td>赵六</td>

              <td>27</td>

              <td>南京</td>

       </tr>

       <tr>

              <td>周七</td>

              <td>25</td>

              <td>大连</td>

       </tr>

       <tr>

              <td>孙八</td>

              <td>29</td>

              <td>铁岭</td>

       </tr>

</table>

</body>

</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值