应用DOM操作文档的一个实用例子

简介:

DOM(Document Object Model)是表示文档(如HTML文档)和访问、操作说清楚文档的各种元素(如HTML标记和文本串)的应用程序接口(API)。在DOM中,HTML文档中的各个节点被视为各种类型的Node对象,并且将HTML文档表示为Node对象的树。

下面通过一个添加评论和删除评论功能的例子来体验一个DOM操作文档的用法


实现效果图如下:

wKioL1LRaZex769gAAGQToonp7Y607.jpg


步骤:


(1)最顶端的小狗与文字没什么好说,就是弄一个表格。下面说说评论和评论内容这块,在页面中添加一个表格(1X2)用于显示评论的列表。代码如下:

1
2
3
4
5
6
< table  width = "600"  border = "1"  align = "center"  cellpadding = "0"  cellspacing = "0"  bordercolor = "#FFFFFF"  bordercolorlight = "#666666"  bordercolordark = "#FFFFFF"  id = "comment" >
   < tr >
     < td  width = "18%"  height = "27"  align = "center"  bgcolor = "#E5BB93" >评论人</ td >
     < td  width = "82%"  align = "center"  bgcolor = "#E5BB93" >评论内容</ td >
   </ tr >
</ table >


(2)在评论列表下方就是用于收集评论信息,可以通过一个表单去实现评论的输入信息。还有就是下面几个button.详细代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
< form  name = "form1"  method = "post"  action = "" >  
   < table  width = "600"  height = "122"  border = "0"  align = "center"  cellpadding = "0"  cellspacing = "0" >
     < tr >
       < td  width = "119"  height = "14" >&nbsp;</ td >
       < td  width = "481" >&nbsp;</ td >
     </ tr >
     < tr >
       < td  height = "27"  align = "center" >评 论 人:</ td >
       < td >
         < input  name = "person"  type = "text"  id = "person"  size = "40" >
       </ td >
     </ tr >
     < tr >
       < td  align = "center" >评论内容:</ td >
       < td >< textarea  name = "content"  cols = "60"  rows = "6"  id = "content" ></ textarea ></ td >
     </ tr >
     < tr >
       < td  height = "40" >&nbsp;</ td >
       < td >< input  name = "Button"  type = "button"  class = "btn_grey"  value = "发表"  >
       &nbsp;
       < input  name = "Reset"  type = "reset"  class = "btn_grey"  value = "重置" >
       &nbsp;
       < input  name = "Button"  type = "button"  class = "btn_grey"  value = "删除第一条评论"  >
       &nbsp;
       < input  name = "Button"  type = "button"  class = "btn_grey"  value = "删除最后一条评论"  ></ td >
     </ tr >
   </ table >
   </ form >

顺便也把定义的css样式也放出来(按需修改):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* CSS Document */
<!--
body{
     FONT-SIZE:  9pt ;
     margin-left : 0px ;
     SCROLLBAR-FACE-COLOR:  #E5BB93 ;
     SCROLLBAR-HIGHLIGHT-COLOR:  #ffffff ;
     SCROLLBAR-SHADOW-COLOR:  #fcfcfc ; COLOR:  #000000 ;
     SCROLLBAR -3 DLIGHT-COLOR:  #ececec ;
     SCROLLBAR-ARROW-COLOR:  #ffffff ;
     SCROLLBAR-TRACK-COLOR:  #ececec ;
     SCROLLBAR-DARKSHADOW-COLOR:  #999966 ;
     BACKGROUND-COLOR:  #fcfcfc
}
a:hover {
     font-size 9pt color #FF6600 ;
}
a {
     font-size 9pt text-decoration none ;   color #676767 ;
     noline:expression(this.onfocus=this.blur);
}
td{
     font-size 9pt color #000000 ;
     padding : 5px ;
}
.btn_grey {
     font-family "宋体" ;   font-size 9pt ; color #333333 ;
     background-color #eeeeee ; cursor : hand; padding : 1px ; height : 19px ;
     border-top 1px  solid  #FFFFFF ; border-right : 1px  solid  #666666 ;
     border-bottom 1px  solid  #666666 ; border-left 1px  solid  #FFFFFF ;
}
input{
     font-family "宋体" ;
     font-size 9pt ;
     color #333333 ;
     border 1px  solid  #999999 ;
}
hr{
     border-style : solid ;
     height : 1px ;
     color : #CCCCCC ;
}
-->
<meta http-equiv= "Content-Type"  content= "text/html; charset=GBK" >



(3)下面就需要编写自定义的JavaScript函数addElement(),用于在评论列表中添加一条评论信息。在该函数中,首先将评论信息添加到评论列表的后面,然后清空评论人和评论内容文本框。具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function  addElement() {
     //创建TextNode节点
     var  person = document.createTextNode(form1.person.value);
     var  content = document.createTextNode(form1.content.value);
     //创建td类型的Element节点
     var  td_person = document.createElement( "td" );
     var  td_content = document.createElement( "td" );
     var  tr = document.createElement( "tr" );  //创建一个tr类型的Element节点
     var  tbody = document.createElement( "tbody" );  //创建一个tbody类型的Element节点
     //将TextNode节点加入到td类型的节点中
     td_person.appendChild(person);
     td_content.appendChild(content);  
     //将td类型的节点添加到tr节点中
     tr.appendChild(td_person);
     tr.appendChild(td_content);
     tbody.appendChild(tr);  //将tr节点加入tbody中
     var  tComment = document.getElementById( "comment" );  //获取table对象
     tComment.appendChild(tbody);  //将节点tbody加入节点尾部
     form1.person.value= "" ;   //清空评论人文本框
     form1.content.value= "" ;      //清空评论内容文本框
}


(4)坚接着编写JavaScript函数delectFirstE(),用于将评论列表第一条信息删除:

1
2
3
4
5
6
7
//删除第一条评论
function  deleteFirstE(){
     var  tComment = document.getElementById( "comment" );  //获取table对象
     if (tComment.rows.length>1){
         tComment.deleteRow(1);       //删除表格的第二行,即第一条评论,
     }
}

(5)同样,编写一个自定义的delectLastE(),用于将评论最后一条信息删除:

1
2
3
4
5
6
7
//删除最后一条评论
function  deleteLastE(){
     var  tComment = document.getElementById( "comment" );  //获取table对象
     if (tComment.rows.length>1){
         tComment.deleteRow(tComment.rows.length-1);  //删除表格的最后一行,即最后一条评论
     }
}


(6)为了触发前面javascript中所定义的那几个事件,那个就需要加入onclick事件来实现用户单击“发表”、“删除第一条评论”等按钮时的响应了。所以需要在前面web页面中所定义的按钮中加入onClick:

1
2
3
<input name= "Button"  type= "button"  class= "btn_grey"  value= "发表"  onClick= "addElement()" >
<input name= "Button"  type= "button"  class= "btn_grey"  value= "删除第一条评论"  onClick= "deleteFirstE()" >
<input name= "Button"  type= "button"  class= "btn_grey"  value= "删除最后一条评论"  onClick= "deleteLastE()" >


那么DOM文档操作的应用大概先这样记录一下了,继续努力。


本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1350937,如需转载请自行联系原作者


相关文章
|
1月前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
16 1
|
1月前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
12 1
|
1月前
|
JavaScript 前端开发
如何使用 JavaScript 操作 DOM?
如何使用 JavaScript 操作 DOM?
13 0
|
1月前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
23 0
|
2天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
9天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
15 0
|
9天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
14 4
N..
|
30天前
|
JavaScript 前端开发 容器
jQuery中的DOM操作
jQuery中的DOM操作
N..
14 1
|
1月前
|
前端开发 JavaScript Java
第四章使用jQuery操作DOM元素
第四章使用jQuery操作DOM元素
9 0
|
1月前
|
JavaScript
jQuery操作DOM元素案例
jQuery操作DOM元素案例
10 0