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 相关文章推荐
URI、URL和URN之间的区别与联系
Dec 20 Javascript
根据地区不同显示时间的javascript代码
Aug 13 Javascript
JavaScript设置FieldSet展开与收缩
May 15 Javascript
javascript 框架小结 个人工作经验
Jun 13 Javascript
javascript (用setTimeout而非setInterval)
Dec 28 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
Dec 19 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 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 引用文件技巧
2010/03/02 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
PHP中的use关键字概述
2014/07/23 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
Node.js进阶之核心模块https入门
2018/05/23 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
pyside写ui界面入门示例
2014/01/22 Python
python采集百度百科的方法
2015/06/05 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python多线程分块读取文件
2019/08/29 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
宣传策划类求职信范文
2014/01/31 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
运动会方队口号
2014/06/07 职场文书
导游词之江南周庄
2019/12/06 职场文书
Python机器学习之基础概述
2021/05/19 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android