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 相关文章推荐
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
Nov 24 Javascript
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
Jan 08 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
jQuery.deferred对象使用详解
Mar 18 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
AngularJS 表达式详解及实例代码
Sep 14 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
Dec 01 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
Aug 29 Javascript
用webpack4开发小程序的实现方法
Jun 04 Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
PHP实现ftp上传文件示例
2014/08/21 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
JS实现图片切换效果
2018/11/17 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python3大文件解压和基本操作
2017/12/15 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
Django 限制访问频率的思路详解
2019/12/24 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
python excel和yaml文件的读取封装
2021/01/12 Python
python 基于opencv去除图片阴影
2021/01/26 Python
公司年会晚宴演讲稿
2014/01/06 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
干部年终考核评语
2015/01/04 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
Python 内置函数速查表一览
2021/06/02 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js