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 相关文章推荐
js继承 Base类的源码解析
Dec 30 Javascript
asp.net HttpHandler实现图片防盗链
Nov 09 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
Oct 11 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
Node.js实现简单聊天服务器
Jun 20 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
vue模板语法-插值详解
Mar 06 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
javascript事件监听与事件委托实例详解
Aug 16 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
十天学会php之第四天
2006/10/09 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
php旋转图片90度的方法
2013/11/07 PHP
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
canvas的神奇用法
2017/02/03 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
Python的多态性实例分析
2015/07/07 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
pandas数据处理之绘图的实现
2020/06/15 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
小学趣味运动会加油稿
2014/09/25 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL