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中产生20位随机数以0-9为例也可以是a-z A-Z
Aug 01 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
avalonjs制作响应式瀑布流特效
May 06 Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 Javascript
js实现网页收藏功能
Dec 17 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
Echarts动态加载多条折线图的实现代码
May 24 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 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 获取ip地址代码汇总
2015/07/05 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
Yii全局函数用法示例
2017/01/22 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
juqery 学习之四 筛选过滤
2010/11/30 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
工厂门卫岗位职责范本
2014/04/04 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
会计工作总结范文2014
2014/12/23 职场文书
考试作弊检讨书
2015/01/27 职场文书
法人代表证明书范本
2015/06/18 职场文书
学习经验交流会总结
2015/11/02 职场文书
2016年教代会开幕词
2016/03/04 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python