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 相关文章推荐
JavaScript访问样式表代码
Oct 15 Javascript
jQuery弹出(alert)select选择的值
Apr 21 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 Javascript
js实现回放拖拽轨迹从过程上进行分析
Jun 26 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 Javascript
20分钟轻松创建自己的Bootstrap站点
May 12 Javascript
JavaScript常见的五种数组去重的方式
Dec 15 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
Angular resolve基础用法详解
Oct 03 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
常用的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 setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php操作MongoDB类实例
2015/06/17 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
python验证码图片处理(二值化)
2019/11/01 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Django框架请求生命周期实现原理
2020/11/13 Python
python中封包建立过程实例
2021/02/18 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
英国景点门票网站:attractiontix
2019/08/27 全球购物
几个SQL的面试题
2014/03/08 面试题
求职简历中自我评价
2014/01/28 职场文书
爱国演讲稿500字
2014/05/04 职场文书
文秘自荐信
2014/06/28 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
死者家属慰问信
2015/03/24 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书