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

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

实现效果图如下:

步骤:

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

<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.详细代码如下:

<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样式也放出来(按需修改):

/* CSS Document */
<!--
body{FONT-SIZE: 9pt;margin-left:0px;SCROLLBAR-FACE-COLOR: #E5BB93;SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;SCROLLBAR-SHADOW-COLOR: #fcfcfc; COLOR: #000000;SCROLLBAR-3DLIGHT-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.οnfοcus=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(),用于在评论列表中添加一条评论信息。在该函数中,首先将评论信息添加到评论列表的后面,然后清空评论人和评论内容文本框。具体代码如下:

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(),用于将评论列表第一条信息删除:

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

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

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

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

<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文档操作的应用大概先这样记录一下了,继续努力。

转载于:https://blog.51cto.com/lixiyu/1350937

应用DOM操作文档的一个实用例子相关推荐

  1. 怎样把几个PDF文档合并一个文件?

    每天工作时面对各种各样的文件资料,如果不好好花时间整理好的话就会变得杂乱无章,导致文件的丢失或者找不到,让我们的工作效率大打折扣,一整天的心情也会变得很糟糕.现在工作中PDF文件格式比较盛行,工作中的 ...

  2. html语言中,定义文档中一个正在打开的链接的颜色的代码是,2017微软认证考试精选练习(附答案)...

    2017微软认证考试精选练习(附答案) 1.如果要使图像在缩放时不失真,在图像显示原始大小时,按下( )键,拖动 图像右下方 的控制点,可以按比例调整图像大小 B A. Ctrl B. Shift C ...

  3. python:操作文档——TXT篇

    python:操作文档--TXT篇 一.前言: ​ 文档操作是任何web应用程序的组成部分,我们可以将一些保密级别不高的数据存储在文档中,这样就使得数据永久保存,而不是像全局变量一样,当程序结束后自动 ...

  4. 如何给多个Word文档创建一个有连续页码的目录

    问题描述 使用Word处理大文档.多图片文档或多表格文档时,其响应速度变得非常慢,甚至出现卡死的假象.此时,一般是将Word拆分为多个Word文档进行单独的编辑,当然,在创建目录时,则会面临多个Wor ...

  5. PHP在线模拟考试系统源码(带操作文档)源码分享

    PHP在线模拟考试系统源码带操作文档 源码全开源免费分享, 在线考试系统将传统的培训考试与先进的网络模式相结合,使用户可根据自身特点快速构建考试.测评.练习.竞赛.调查.分析及管理 于一体的网络化考试 ...

  6. RestClient操作文档四

    RestClient操作文档 前言: 文档操作(Document)与索引库(mapper)之间的关系 索引库(mapper)映射文件指定了具体的字段是什么类型的,和是否需要索引以及他的分词方式是什么 ...

  7. 清软英泰plm服务器安装文档,操作文档集合 (安装和管理 AnswerBook2 服务器 - zh)

    操作文档集合 AnswerBook2 集合 是一个逻辑书组.例如,您可有一个包括所有 SolarisTM 面向开发者的书的集合.此集合可能是一个 AnswerBook2 (SGML) 集合或一个 An ...

  8. Python 操作文档之请假条

    Python 操作文档之请假条.md from docx import Document from datetime import datetimedoc=Document() doc.add_hea ...

  9. ecognition-易康软件相关操作文档和视频

    ecognition-易康软件相关操作文档和视频 链接: https://pan.baidu.com/s/1lP1zofFqIDnLCPCH_lm47g 提取码: 7kvy 如需其他咨询请加Q8408 ...

最新文章

  1. SwiftSuspenders 1.6-深入浅出1
  2. Linux系统下使用桥接模式,无法ping通外网解决问题方案!
  3. pytorch Flatten展平
  4. shuoj 418 丢史蒂芬妮(素数筛+sg函数)
  5. Android Learning:数据存储方案归纳与总结
  6. 12、testng.xml指定运行测试包、测试类、测试方法
  7. 网盘助手插件chrome插件
  8. (8)USB协议 —— 高速模式握手过程
  9. P2P业务整体流程图
  10. sqlite只能用于android系统,android SQLite
  11. Linux中update和upgrade的区别
  12. 如何才能通过一线互联网公司面试?下载量瞬秒百万
  13. Unity VR学习:第一人称射击游戏(1)
  14. 使用java -jar 修改SpringBoot项目中application.properties的配置项
  15. 十六进制解码_快速十六进制编码和解码
  16. arcgis制图 ——羽化效果
  17. E-PUCK机器人-开始
  18. python手机群控(adb命令)实现
  19. 笔记本内存和台式机内存的区别
  20. pyspark之dataframe当前行与上一行值求差

热门文章

  1. C++特化的应用——类型萃取
  2. vscode安装python插件_python之VSCode
  3. bs架构 mysql_基于BS架构OA办公系统的设计(PHP,MySQL)(三人组)(含录像)
  4. 赛程一览 | 2019 上海国际创客大赛
  5. CF1101A Minimum Integer 模拟
  6. webpack+vue+mint-ui 实现上拉加载更多(Loadmore组件)
  7. Transition 实现轮播图
  8. ORA-16038: log 3 sequence# 103 cannot be archived
  9. [转]在Javascript中闭包(Closure)
  10. 清华大学郑莉c++答疑