*** JavaScript中DOM对象的详解***

DOM对象:Document Object Model,文档对象模型。也称为document(文档对象),是HTML页面当前窗体的内容,是连接JS与html的重要对象,同时也是JavaScript重要组成部分之一。由于HTML文档可以看做是一个节点树。DOM HTML指的是DOM中为操作HTML文档提供的属性和方法。文档中的标签称为元素(Element),文档中的所有内容称为节点(Node)
DOM HTML节点树:

DOM对象的继承关系:

通过上图的继承关系我们可以看出,document和Element是两种不同类型的节点(Node)对象。它们不仅能够使用Node对象的一系列属性和方法完成节点操作。也可以使用特有的属性和方法完成不同类型节点的操作。补充:jQuery对象是对DOM对象的一层包装,它为DOM对象提供了许多功能,使其对于页面元素和事件的调动更加方便。本文主要讲document对象。
可用代码来简单验证一下document的所属关系。

我们一般可用document的两种方法获取、增加,修改或删除网页内容。

一、利用DOMHTML元素操作。

方法 说明
document.getElementById() 返回对拥有指定id的第一个对象的引用
document.getElementsByName() 返回带有指定名称的对象集合
document.getElementsByTagName() 返回带有指定标签名的对象集合
document.getElementsByClassName() 返回带有指定类名的对象集合(不支持IE6~8)
利用这些方法可以根据元素的id、name和class属性以及标签名称的方式获取操作的元素。
document对象也提供一些属性,可用于获取文档中的元素,例如document.body返回文档的body元素,document.forms返回对文档中所有Form对象引用。若要对获取的元素内容进行操作,则可以利用DOM提供的属性和方法实现。innerHTML,innerText和textContent属性获取或修改元素内容:

分类 名称 说明
属性 innerHTML 设置或返回元素开始和结束标签之间的HTML
属性 innerText 设置或返回元素中去除所有标签的内容
属性 textContent 设置或者返回指定节点的文本内容
方法 document.write() 向文档写入指定的内容
方法 document.writeln() 向文档写入指定的内容后并换行
innerText属性在使用时可能会出现浏览器兼容的问题。因此,推荐在开发时尽可能的使用innerHTML获取或设置元素的文本内容。但是如是使用嵌入式的JavaScript方式使用nnerHTML获取或设置元素的文本内容时要注意JS代码要在你获取的元素的后面,否则会报错:Uncaught TypeError: Cannot set property ‘innerHTML’ of null(原因是执行了js代码段但没有找到目标id)
在DOM中,还提供了操作的属性和方法。attributes属性可得到一个元素的属性集合,setAttribute(name, value)方法设置或者改变指定属性的值。为了对类选择器列表进行操作,HTML5新增的classList(只读)元素的类选择器列表使得操作更加容易。toggle()
方法可以切换元素的样式,若元素之前没有指定名称的样式则添加,如果有则移除。

二、 DOM节点操作

由于HTML文档可以看做是一个节点树,因此,可以利用操作节点的方式操作HTML中的元素。但是DOM的节点操作没有修改这一操作,只有节点获取、删除和添加,获取节点的一些操作:
属性 说明
firstChild 访问当前节点的首个子节点
lastChild 访问当前节点的最后一个子节点
nodeName 访问当前节点名称
nodeValue 访问当前节点的值
nextSibiling 返回同一树层级中指定节点之后紧跟的节点
previousSibling 返回同一树层级中指定节点的前一个节点
parentNode 访问当前元素节点的父节点
childNodes 访问当前元素节点的所有子节点的集合
方法 说明
document.createElement() 创建元素节点
document.createTextNode() 创建文本节点
document.createAttribute() 创建属性节点
appendChild() 在指定元素的子节点列表的末尾添加一个节点
insertBefore() 为当前节点增加一个子节点(插入到指定子节点之前)
getAttributeNode() 返回指定名称的属性节点
setAttributeNode() 设置或者改变指定名称的属性节点
在获取元素的节点后,还可以利用DOM提供的方法实现节点的添加:
注意:其中create系列的方法是由document对象提供的,与Node对象无关。
节点删除:removeChild()和removeAttributeNode()方法实现。其返回值是被移出的元素节点或属性节点。

JavaScript中DOM对象的详解相关推荐

  1. php 实现setinterval,JavaScript中setInterval的使用详解

    相信很多大伙都知道JavaScript中setInterval的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象,也有很多小伙伴对此也只是知道setInterval的定义.也是一知半解,今天我 ...

  2. jquery对象PHP转换,jQuery对象与DOM对象转换方法详解_jquery

    本文实例分析了jQuery对象与DOM对象的转换方法.分享给大家供大家参考,具体如下: jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属 ...

  3. javascript中的闭包closure详解

    文章目录 简介 函数中的函数 Closure闭包 使用闭包实现private方法 闭包的Scope Chain 闭包常见的问题 闭包性能的问题 总结 简介 闭包closure是javascript中一 ...

  4. [JavaScript]关于JavaScript中DOM对象的使用

    DOM对象是个好东西. 通过 HTML DOM,可以访问 JavaScript HTML 文档的所有元素. 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model, ...

  5. jquery对象和DOM对象的相互转换详解

    jquery对象和DOM对象的相互转换 在讨论jquery对象和DOM对象的相互转换之前,先约定好定义变量的风格如果获取的是jquery对象,那么在变量前面加上$,例如 var $varible = ...

  6. javascript 中match函数使用详解

    javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下: stringObj.match(rgExp) 其中strin ...

  7. JavaScript中的valueOf方法详解

    Object.prototype.valueOf() valueOf() 方法返回指定对象的原始值. 语法 object.valueOf() 返回值 返回值为该对象的原始值. 描述 JavaScrip ...

  8. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  9. JavaScript 中常见排序算法详解

    十大经典算法 一张图概括: 名词解释: n:数据规模 k:"桶"的个数 In-place:占用常数内存,不占用额外内存 Out-place:占用额外内存 稳定性:排序后2个相等键值 ...

最新文章

  1. python global函数_如何使用python语言中的global关键字获取函数值
  2. vba去oracle数据后乱码,vba中读取utf-8文件乱码问题
  3. Min_25筛学习笔记
  4. SSM+KindEditor实现富文本编辑器图片上传
  5. Struts2与Spring集成中的自动装配策略
  6. CGI,FastCGI,PHP-CGI,PHP-FPM
  7. 构建用于测试的超大型内存InputStream
  8. 4邻接、8邻接、m邻接
  9. .Net开发人员通过WCF使用Node.js
  10. 英伟达RTX 2080 Ti值得买么?深度学习测试来了!
  11. 悟空CRM测试用例执行,项目评审
  12. 动态电路中的动态元件——电容和电感
  13. 消防给水及消火栓系统技术规范_消防给水——消火栓系统分区给水剖析
  14. 26两种主界面的设计
  15. 互联网名词有哪些?读了这篇就够了
  16. C语言赋值表达式是从左到右还是从右到左执行?
  17. 千里马Android Framework-input系统专题blog目录集合
  18. 影像组学平台助力又一位培训班学员论文见刊:基于机器学习的多参数MRI放射组学预测直肠癌患者新辅助放化疗后不良反应
  19. 1.通过PADS Logic创建原件类型和逻辑封装
  20. ArcGis缓冲区分析

热门文章

  1. Backpack-problem背包九讲笔记
  2. 时隔一年才发现嵌入式到底指的是什么
  3. 使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据
  4. Windows桌面右键新建未出现word/excel/ppt解决方法
  5. 第九批车船税减免名单公示 新能源汽车共计444款
  6. 深度学习 - 42.特征交叉与 SENET、Bilinear Interaction 与 FiBiNet
  7. som java_SOM网络聚类完整示例(利用python和java)
  8. 【web前端开发 | CSS】页面布局之盒子模型
  9. uniapp打包安卓apk增加推送UniPush工具hbuilder
  10. Flink写RocketMQ支持动态UserProperty