应用DOM操作文档的一个实用例子
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"> </td><td width="481"> </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"> </td><td><input name="Button" type="button" class="btn_grey" value="发表" > <input name="Reset" type="reset" class="btn_grey" value="重置"> <input name="Button" type="button" class="btn_grey" value="删除第一条评论" > <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操作文档的一个实用例子相关推荐
- 怎样把几个PDF文档合并一个文件?
每天工作时面对各种各样的文件资料,如果不好好花时间整理好的话就会变得杂乱无章,导致文件的丢失或者找不到,让我们的工作效率大打折扣,一整天的心情也会变得很糟糕.现在工作中PDF文件格式比较盛行,工作中的 ...
- html语言中,定义文档中一个正在打开的链接的颜色的代码是,2017微软认证考试精选练习(附答案)...
2017微软认证考试精选练习(附答案) 1.如果要使图像在缩放时不失真,在图像显示原始大小时,按下( )键,拖动 图像右下方 的控制点,可以按比例调整图像大小 B A. Ctrl B. Shift C ...
- python:操作文档——TXT篇
python:操作文档--TXT篇 一.前言: 文档操作是任何web应用程序的组成部分,我们可以将一些保密级别不高的数据存储在文档中,这样就使得数据永久保存,而不是像全局变量一样,当程序结束后自动 ...
- 如何给多个Word文档创建一个有连续页码的目录
问题描述 使用Word处理大文档.多图片文档或多表格文档时,其响应速度变得非常慢,甚至出现卡死的假象.此时,一般是将Word拆分为多个Word文档进行单独的编辑,当然,在创建目录时,则会面临多个Wor ...
- PHP在线模拟考试系统源码(带操作文档)源码分享
PHP在线模拟考试系统源码带操作文档 源码全开源免费分享, 在线考试系统将传统的培训考试与先进的网络模式相结合,使用户可根据自身特点快速构建考试.测评.练习.竞赛.调查.分析及管理 于一体的网络化考试 ...
- RestClient操作文档四
RestClient操作文档 前言: 文档操作(Document)与索引库(mapper)之间的关系 索引库(mapper)映射文件指定了具体的字段是什么类型的,和是否需要索引以及他的分词方式是什么 ...
- 清软英泰plm服务器安装文档,操作文档集合 (安装和管理 AnswerBook2 服务器 - zh)
操作文档集合 AnswerBook2 集合 是一个逻辑书组.例如,您可有一个包括所有 SolarisTM 面向开发者的书的集合.此集合可能是一个 AnswerBook2 (SGML) 集合或一个 An ...
- Python 操作文档之请假条
Python 操作文档之请假条.md from docx import Document from datetime import datetimedoc=Document() doc.add_hea ...
- ecognition-易康软件相关操作文档和视频
ecognition-易康软件相关操作文档和视频 链接: https://pan.baidu.com/s/1lP1zofFqIDnLCPCH_lm47g 提取码: 7kvy 如需其他咨询请加Q8408 ...
最新文章
- SwiftSuspenders 1.6-深入浅出1
- Linux系统下使用桥接模式,无法ping通外网解决问题方案!
- pytorch Flatten展平
- shuoj 418 丢史蒂芬妮(素数筛+sg函数)
- Android Learning:数据存储方案归纳与总结
- 12、testng.xml指定运行测试包、测试类、测试方法
- 网盘助手插件chrome插件
- (8)USB协议 —— 高速模式握手过程
- P2P业务整体流程图
- sqlite只能用于android系统,android SQLite
- Linux中update和upgrade的区别
- 如何才能通过一线互联网公司面试?下载量瞬秒百万
- Unity VR学习:第一人称射击游戏(1)
- 使用java -jar 修改SpringBoot项目中application.properties的配置项
- 十六进制解码_快速十六进制编码和解码
- arcgis制图 ——羽化效果
- E-PUCK机器人-开始
- python手机群控(adb命令)实现
- 笔记本内存和台式机内存的区别
- pyspark之dataframe当前行与上一行值求差
热门文章
- C++特化的应用——类型萃取
- vscode安装python插件_python之VSCode
- bs架构 mysql_基于BS架构OA办公系统的设计(PHP,MySQL)(三人组)(含录像)
- 赛程一览 | 2019 上海国际创客大赛
- CF1101A Minimum Integer 模拟
- webpack+vue+mint-ui 实现上拉加载更多(Loadmore组件)
- Transition 实现轮播图
- ORA-16038: log 3 sequence# 103 cannot be archived
- [转]在Javascript中闭包(Closure)
- 清华大学郑莉c++答疑