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 相关文章推荐
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
js opener的使用详解
Jan 11 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JS及PHP代码编写八大排序算法
Jul 12 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
JS封装通过className获取元素的函数示例
Dec 20 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
常用的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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php实现加减法验证码代码
2014/02/14 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
python循环监控远程端口的方法
2015/03/14 Python
Python3.6正式版新特性预览
2016/12/15 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
详解python中的线程与线程池
2019/05/10 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
波兰购物网站:MALL.PL
2019/05/01 全球购物
一套VC试题
2015/01/23 面试题
会计专业推荐信
2013/10/29 职场文书
五好党支部事迹材料
2014/02/06 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
Python基于百度AI实现抓取表情包
2021/06/27 Python
Java使用jmeter进行压力测试
2021/07/09 Java/Android
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python