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 相关文章推荐
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 Javascript
jQuery中empty()方法用法实例
Jan 16 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 Javascript
理解javascript模块化
Mar 28 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php 上传功能实例代码
2010/04/13 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
Python采用Django开发自己的博客系统
2020/09/29 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
详解python调用cmd命令三种方法
2019/07/08 Python
Python实现微信小程序支付功能
2019/07/25 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python计算导数并绘图的实例
2020/02/29 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
学生会招新策划书
2014/02/14 职场文书