JavaScript驾驭网页-DOM


Posted in Javascript onMarch 24, 2016

一、DOM全称

文档对象模型(Document Object Model)

二、DOM是什么

DOM就是一个编程接口,就是一套API。
DOM是针对HTML文档、XML等文档的一套API。就类似于JDBC是针对数据库的一套API一样。

三、DOM的用途

DOM 是用来访问或操作HTML文档、XHTML文档、XML文档中的节点元素。

现在基本上所有的浏览器都都执行了W3C发布的DOM规范,所以在浏览器上就可以用DOM的这些API。

DOM提供对脚本友善的网页结构与内容的视图

DOM把网页视为节点构成的层次树

DOM树

每棵DOM树的最顶端节点都是Document,它在HTML节点的上层

网页是DOM节点的集合

见图1

JavaScript驾驭网页-DOM

节点类型

网页节点是按类别分类的,主要有元素节点与文本节点构成

见图2

JavaScript驾驭网页-DOM

节点特性

利用节点特性能用于导览节点树

以下是常用的节点特性:

nodeValue 存储于节点的值,只限于文本与属性节点使用(不含元素)

nodeType 节点类型,例如它是DOCUMENT或TEXT等等,但以代号表示

childNodes 包含节点下所有子节点的数组,以出现在HTML代码中的顺序而排列

firstChild 节点下的第一个子节点

lastChild 节点下的最后一个子节点

例子

document.getElementById(“id”).nodeValue;//获取某节点下的纯文本 
document.getElementsByTagName(“body”)[0].childNodes[1].lastChild;//body下的第二个子节点的最后一个节点

利用DOM改变元素的内容

首先 移除所有子节点

然后 根据新内容创建新的文本节点

最后 把新创建的文本子节点附加到节点下

这里涉及到三个方法

removeChidl()移除目标节点下的一个子节点,传入将被移除的子节点

createTextNode()从文本字符串创建文本节点

appendChildO()以最后一个子节点的开工加入新节点,传入将被新增加的子节点

var node=document.getElementById(“id”);//获取元素 
while (node.firstChild)//删除元素下的所有子节点(这里判断子节点是否存在,存在为true) 
node.removeChild(node.firstChild) 
node.appendChild(document.createTextNode(“message”))//为元素添加新内容

总结

innerHTML虽并非万维网的标准,但这个特性能访问元素内存储的所有内容

Document Object Model(文档对象模型),简称DOM,提供访问和修改网页数据的标准化机制

DOM视图页为关联节点的层次树

使用DOM(而非innerHTML)改变网页内容的方案,需移除元素下所有的子节点,然后创建并附加上包含新内容的新子节点。

关于JavaScript驾驭网页-DOM就给大家介绍到这里,下篇将给大家介绍JavaScript驾驭网页-CSS与DOM,感兴趣的朋友点击查看详情!

Javascript 相关文章推荐
javascript之水平横向滚动歌词同步的应用
May 07 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
9102年webpack4搭建vue项目的方法步骤
Feb 20 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
react 移动端实现列表左滑删除的示例代码
Jul 04 Javascript
浅谈TypeScript的类型保护机制
Feb 23 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
常用的JQuery函数及功能小结
Mar 24 #Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 #Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
Mar 24 #Javascript
不能不知道的10个angularjs英文学习网站
Mar 23 #Javascript
AngularJS 让人爱不释手的八种功能
Mar 23 #Javascript
java中String类型变量的赋值问题介绍
Mar 23 #Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 #Javascript
You might like
php中函数的形参与实参的问题说明
2010/09/01 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python xml解析实例详解
2016/11/14 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
python 如何引入协程和原理分析
2020/11/30 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
超市实习总结自我鉴定
2013/09/19 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python