- 浏览: 3319859 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (567)
- Web前端-html/表单 (19)
- Web前端-CSS (24)
- Web前端-CSS框架 (4)
- Web前端-JS语言核心 (50)
- Web前端-JS客户端 (26)
- nodejs生态+grunt (10)
- seajs和requirejs (9)
- backbone等框架 (7)
- 模板基础 (7)
- Web前端-deps(不改动) (6)
- Web前端-component (10)
- Web前端-jquery-plugin (13)
- 浏览器兼容性 (6)
- Web前端-使用jQuery (25)
- Web前端-使用jqueryui (6)
- Web前端-性能优化 (3)
- Web协议-HTTP (6)
- ExtJS (13)
- PHP (22)
- PHP面向对象 (4)
- PHP扩展-SOAP (6)
- PHP扩展-curl (4)
- PHP与HTML(导出) (5)
- PHP扩展-综合 (7)
- mysql基础应用 (18)
- 技术心情 (18)
- 算法和面试题 (17)
- 工具(开发)使用 (36)
- memcached原理 (2)
- session和cookie (4)
- UML (2)
- Web前端_FusionCharts (5)
- Web前端_Flex (4)
- Web前端_JSP (3)
- JavaSE (10)
- JavaEE (4)
- tomcat (2)
- Servlet开发 (3)
- Spring开发 (1)
- REST相关 (2)
- 大访问量、高并发 (2)
- 网络编程 (1)
- YII (21)
- linux命令和内核 (12)
- yii与数据库 (10)
- yii与表单 (12)
- yii view层 (1)
- perl (7)
- yii扩展 (7)
- shell (4)
- photoshop (7)
- 视觉设计 (2)
- 我关注的名人在路上 (4)
- 1-自学能力 (1)
- 2-人际沟通能力 (3)
- 3-职业规划能力 (7)
- 4-项目管理能力 (2)
- python (3)
- django (4)
- Mysql高级应用 (6)
- prototype.js (4)
- Web系统安全 (1)
- Web前端-mobile (2)
- egret (6)
- jQuery源码分析 (5)
- fis (4)
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
Document,Node,Element,HTMLDocument ,HTMLCollection,HTMLElement,NodeList
- 博客分类:
- Web前端-JS客户端
作者:zccst
这个问题如果不是基于原生js写组件,可能仍然不明不白,既然遇到了,就整理一下。
一、Document,Node,Element的关系
1,Document 对象
Document 对象是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口。
用于元素节点、文本节点、注释、处理指令等均无法存在于 document 之外,document 对象同样提供了创建这些对象的方法。Node 对象提供了一个 ownerDocument 属性,此属性可把它们与在其中创建它们的 Document 关联起来。
属性:documentElement, doctype, nodeType, childNodes, firstChild
方法:createElement(), createTextNode(), getElementByXX(),
2,Node 对象 - 节点对象代表文档树中的一个节点。
Node 对象是整个 DOM 的主要数据类型。
节点对象代表文档树中的一个单独的节点。
节点可以是元素节点、属性节点、文本节点,或者也可以是“节点类型”那一节中所介绍的任何一种节点。
请注意,虽然所有的对象均能继承用于处理父节点和子节点的属性和方法,但是并不是所有的对象都拥有父节点或子节点。例如,文本节点不能拥有子节点,所以向类似的节点添加子节点就会导致 DOM 错误。
nodeType, nodeName, nodeValue
属性:baseURI, ownerDocument, textConent, childNode, firstChild
方法:appendChild(), cloneNode(), isEqualNode(), hasAttributes(), normalize()
完整版
属性:nodeName/nodeType/nodeValue, previousSibling/nextSibling, childNodes, firstChild/lastChild, parentNode/ownerDocument, baseURI, localName, namespaceURI, prefix, textContent(返回节点及其后代的文本内容), text, xml.
方法:cloneNode(), insertBefore(), appendChild/removeChild/replaceChild, isEqualNode/isSameNode, normailze(合并相邻的text节点并删除空的text节点);
节点编号: 节点名称:
1 Element #important 等于1时表示是Element
2 Attribute
3 Text #important
4 CDATA Section
5 Entity Reference
6 Entity
7 Processing Instrucion
8 Comment
9 Document #important 等于9时表示是Document
10 Document Type
11 Document Fragment
12 Notation
(1)ownerDocument:返回节点的根元素(document对象)
(2)NodeList 对象代表一个有顺序的节点列表。
我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
节点列表可保持其自身的更新。如果节点列表或 XML 文档中的某个元素被删除或添加,列表也会被自动更新。
属性:length 可返回节点列表中的节点数目。
方法:item() 可返回节点列表中处于指定的索引号的节点。
3,Element 对象
Element 对象
在 HTML DOM 中,Element 对象表示 HTML 元素。
Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点。
NodeList 对象表示节点列表,比如 HTML 元素的子节点集合。
元素也可以拥有属性。
属性:attributes, baseURI, tagName, ownerDocument, nodeType, childNodes, firstChild, nextSibling
方法:appendChild()类,isEqualNode()类,getAttribute()类,getElementsByTagName()
与Node不同的是:node没有属性操作相关的方法。都是关于节点的,如appendChild()类,isEqualNode()类
(1) XMLElement 对象
Element 对象表示 XML 文档中的元素。元素可包含属性、其他元素或文本。如果元素含有文本,则在文本节点中表示该文本。
由于元素对象也是一种节点,因此它可继承 Node 对象的属性和方法。
重要事项:文本永远存储在文本节点中。在 DOM 处理过程中的一个常见的错误是,导航到元素节点,并认为此节点含有文本。不过,即使最简单的元素节点之下也拥有文本节点。举例,在 <year>2005</year> 中,有一个元素节点(year),同时此节点之下存在一个文本节点,其中含有文本(2005)。
(2) HTMLElement 对象
HTML DOM 节点,表示 HTML 中的一个元素。(nodeType是1)
在 HTML DOM (文档对象模型)中,每个部分都是节点:
文档本身是文档节点
所有 HTML 元素是元素节点
所有 HTML 属性是属性节点
HTML 元素内的文本是文本节点
注释是注释节点
HTMLElement 对象继承了 Node 和 Element 对象的标准方法。某些类型的元素实现了特定于标记的方法,W3School 在 HTML DOM 参考手册的各标记参考页中提供了这些方法的信息。
二、HTMLDocument ,HTMLCollection,HTMLElement,还有NodeList的关系
HTMLxxxxx在Document的基础上进行HTML扩展,同理,还有XML实现。
HTMLDocument 接口提供了对 HTML 层级的访问。
HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法。
很多属性和方法都是 HTMLCollection 对象(实际上是可以用数组或名称索引的只读数组),其中保存了对锚、表单、链接以及其他可脚本元素的引用。
这些集合属性都源自于 0 级 DOM。它们已经被 Document.getElementsByTagName() 所取代,但是仍然常常使用,因为他们很方便。
HTMLCollection 是一个接口,表示 HTML 元素的集合,它提供了可以遍历列表的方法和属性。在 JavaScript 中,HTMLCollection 对象的行为和只读数组一样,可以使用 JavaScript 的方括号,通过编号或名称索引一个 HTMLCollection 对象,而不必调用 item() 方法和 namedItem() 方法。
HTML DOM 中的 HTMLCollection 是“活”的;如果基本的文档改变时,那些改变通过所有 HTMLCollection 对象会立即显示出来。
属性:cssRules 只读属性,返回指示列表长度的整数(即集合中的元素数)。
方法:item(); 返回集合中指定位置的元素(节点)。
namedItem() 返回集合中 name 属性或 id 属性具有指定值的元素(节点)。
HTMLElement对象 表示 HTML 中的一个元素。(nodeType是1)
HTMLElement 对象继承了 Node 和 Element 对象的标准方法。某些类型的元素实现了特定于标记的方法,W3School 在 HTML DOM 参考手册的各标记参考页中提供了这些方法的信息。
NodeList 对象代表一个有顺序的节点列表。
我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
节点列表可保持其自身的更新。如果节点列表或 XML 文档中的某个元素被删除或添加,列表也会被自动更新。
属性:length 可返回节点列表中的节点数目。
方法:item() 可返回节点列表中处于指定的索引号的节点。
这个问题如果不是基于原生js写组件,可能仍然不明不白,既然遇到了,就整理一下。
一、Document,Node,Element的关系
1,Document 对象
Document 对象是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口。
用于元素节点、文本节点、注释、处理指令等均无法存在于 document 之外,document 对象同样提供了创建这些对象的方法。Node 对象提供了一个 ownerDocument 属性,此属性可把它们与在其中创建它们的 Document 关联起来。
属性:documentElement, doctype, nodeType, childNodes, firstChild
方法:createElement(), createTextNode(), getElementByXX(),
2,Node 对象 - 节点对象代表文档树中的一个节点。
Node 对象是整个 DOM 的主要数据类型。
节点对象代表文档树中的一个单独的节点。
节点可以是元素节点、属性节点、文本节点,或者也可以是“节点类型”那一节中所介绍的任何一种节点。
请注意,虽然所有的对象均能继承用于处理父节点和子节点的属性和方法,但是并不是所有的对象都拥有父节点或子节点。例如,文本节点不能拥有子节点,所以向类似的节点添加子节点就会导致 DOM 错误。
nodeType, nodeName, nodeValue
属性:baseURI, ownerDocument, textConent, childNode, firstChild
方法:appendChild(), cloneNode(), isEqualNode(), hasAttributes(), normalize()
完整版
属性:nodeName/nodeType/nodeValue, previousSibling/nextSibling, childNodes, firstChild/lastChild, parentNode/ownerDocument, baseURI, localName, namespaceURI, prefix, textContent(返回节点及其后代的文本内容), text, xml.
方法:cloneNode(), insertBefore(), appendChild/removeChild/replaceChild, isEqualNode/isSameNode, normailze(合并相邻的text节点并删除空的text节点);
节点编号: 节点名称:
1 Element #important 等于1时表示是Element
2 Attribute
3 Text #important
4 CDATA Section
5 Entity Reference
6 Entity
7 Processing Instrucion
8 Comment
9 Document #important 等于9时表示是Document
10 Document Type
11 Document Fragment
12 Notation
(1)ownerDocument:返回节点的根元素(document对象)
(2)NodeList 对象代表一个有顺序的节点列表。
我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
节点列表可保持其自身的更新。如果节点列表或 XML 文档中的某个元素被删除或添加,列表也会被自动更新。
属性:length 可返回节点列表中的节点数目。
方法:item() 可返回节点列表中处于指定的索引号的节点。
3,Element 对象
Element 对象
在 HTML DOM 中,Element 对象表示 HTML 元素。
Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点。
NodeList 对象表示节点列表,比如 HTML 元素的子节点集合。
元素也可以拥有属性。
属性:attributes, baseURI, tagName, ownerDocument, nodeType, childNodes, firstChild, nextSibling
方法:appendChild()类,isEqualNode()类,getAttribute()类,getElementsByTagName()
与Node不同的是:node没有属性操作相关的方法。都是关于节点的,如appendChild()类,isEqualNode()类
(1) XMLElement 对象
Element 对象表示 XML 文档中的元素。元素可包含属性、其他元素或文本。如果元素含有文本,则在文本节点中表示该文本。
由于元素对象也是一种节点,因此它可继承 Node 对象的属性和方法。
重要事项:文本永远存储在文本节点中。在 DOM 处理过程中的一个常见的错误是,导航到元素节点,并认为此节点含有文本。不过,即使最简单的元素节点之下也拥有文本节点。举例,在 <year>2005</year> 中,有一个元素节点(year),同时此节点之下存在一个文本节点,其中含有文本(2005)。
(2) HTMLElement 对象
HTML DOM 节点,表示 HTML 中的一个元素。(nodeType是1)
在 HTML DOM (文档对象模型)中,每个部分都是节点:
文档本身是文档节点
所有 HTML 元素是元素节点
所有 HTML 属性是属性节点
HTML 元素内的文本是文本节点
注释是注释节点
HTMLElement 对象继承了 Node 和 Element 对象的标准方法。某些类型的元素实现了特定于标记的方法,W3School 在 HTML DOM 参考手册的各标记参考页中提供了这些方法的信息。
二、HTMLDocument ,HTMLCollection,HTMLElement,还有NodeList的关系
HTMLxxxxx在Document的基础上进行HTML扩展,同理,还有XML实现。
HTMLDocument 接口提供了对 HTML 层级的访问。
HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法。
很多属性和方法都是 HTMLCollection 对象(实际上是可以用数组或名称索引的只读数组),其中保存了对锚、表单、链接以及其他可脚本元素的引用。
这些集合属性都源自于 0 级 DOM。它们已经被 Document.getElementsByTagName() 所取代,但是仍然常常使用,因为他们很方便。
HTMLCollection 是一个接口,表示 HTML 元素的集合,它提供了可以遍历列表的方法和属性。在 JavaScript 中,HTMLCollection 对象的行为和只读数组一样,可以使用 JavaScript 的方括号,通过编号或名称索引一个 HTMLCollection 对象,而不必调用 item() 方法和 namedItem() 方法。
HTML DOM 中的 HTMLCollection 是“活”的;如果基本的文档改变时,那些改变通过所有 HTMLCollection 对象会立即显示出来。
属性:cssRules 只读属性,返回指示列表长度的整数(即集合中的元素数)。
方法:item(); 返回集合中指定位置的元素(节点)。
namedItem() 返回集合中 name 属性或 id 属性具有指定值的元素(节点)。
HTMLElement对象 表示 HTML 中的一个元素。(nodeType是1)
HTMLElement 对象继承了 Node 和 Element 对象的标准方法。某些类型的元素实现了特定于标记的方法,W3School 在 HTML DOM 参考手册的各标记参考页中提供了这些方法的信息。
NodeList 对象代表一个有顺序的节点列表。
我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
节点列表可保持其自身的更新。如果节点列表或 XML 文档中的某个元素被删除或添加,列表也会被自动更新。
属性:length 可返回节点列表中的节点数目。
方法:item() 可返回节点列表中处于指定的索引号的节点。
发表评论
-
js浏览器端判断当期是否在线
2015-04-17 20:50 2368作者:zccst 纯浏览器端解决办法就是轮询,img轮询和a ... -
scroll时判断向下滚动还是向上滚动
2015-03-30 16:53 38288作者:zccst 有时候需要用到,判断页面是向上还是向下滚动 ... -
[BOM]navigator知识点
2015-03-20 14:42 4848作者:zccst 历史 最早的时候有一个浏览器叫NCSA ... -
[html5]navigator.online属性检测用户是否在线
2015-03-20 14:11 5340作者:zccst navigator.online属性检测用 ... -
document.body、document.documentElement和window获取视窗大小的区别
2015-03-04 15:12 27650作者:zccst 参考网址:http://www.ido32 ... -
doctype和compatModel相关
2015-01-04 19:30 711作者:zccst 一、doctype 1,严格模式与混杂模 ... -
window.history
2014-12-23 10:37 10064作者:zccst 旧版: f ... -
js 页面刷新location.reload和location.replace的区别小结
2014-12-02 20:57 129600作者:zccst reload 方法,该方法强迫浏览器刷新当 ... -
又一次掉进encodeURIComponent的坑里了
2014-11-05 18:21 22476作者:zccst 原坑: get请求 ajax.get ( ... -
DOM元素在浏览器中的位置参数,如offset,ownerDocument
2014-10-08 17:07 4253作者:zccst 2014-10-21 区分clientX ... -
js跨域的多种解决办法
2014-09-20 09:41 942作者:zccst 2015-3-11 JavaScript ... -
[Event]事件(高程版)(二)事件处理程序
2014-06-17 18:00 761作者:zccst <input type=" ... -
[Event]事件(高程版)(一)事件类型
2014-06-17 17:59 722作者:zccst 一、UI事件 1,load 两种添加方式 ... -
target与currentTarget的区别(jqueryui方式获取z-Index)
2014-06-17 12:00 15935作者:zccst 2014-6-25 今天看了jQuery ... -
JSONP原理及实现
2014-06-09 16:47 12357作者:zccst 2015-04-30 更新 跨域实现的 ... -
事件基础(高程版)
2014-06-09 16:37 1025作者:zccst 2014-5-4 一、事件流 标准:DOM ... -
DOM0-节点关系,节点操作API
2014-06-09 15:29 949作者:zccst 2014-09-20 补 ... -
document操作iframe
2013-12-13 16:26 1266作者:zccst //在iframe内获取父页面节点 win ... -
js-location对象
2013-12-11 17:05 1503zccst总结 2015-04-14 获取location的 ... -
document.body.scrollTop和document.documentElement.scrollTop
2013-09-14 14:44 1370作者:zccst 网页可见区域宽: document.bo ...
相关推荐
HTMLCollection和NodeList是前端开发中经常接触到的类数组对象,它们在DOM操作中扮演着重要的角色,对于开发者理解DOM结构和编写高效代码至关重要。接下来将从多个角度分析它们的定义、用途以及区别。 ### ...
### JavaScript中将HTMLCollection、NodeList及伪数组转换为真数组的方法 在JavaScript开发过程中,经常需要处理DOM操作,这通常涉及到对`HTMLCollection`、`NodeList`以及所谓的“伪数组”进行操作。这些对象虽然...
- 通过document.forms, Form.elements, Select.options, document.getElementsByName(), document.getElementsByTagName(), childNodes/children等方式获取的集合(HTMLCollection,NodeList)等。 - 特殊写法的对象...
本文主要介绍了HTML5 HTMLCollection和NodeList的区别详解,分享给大家,具体如下: 获取 HTMLCollection 对象 getElementsByTagName() 方法返HTMLCollection对象。 HTMLCollection 对象类似包含 HTML 元素的一个...
2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。 3,特殊写法...
相比之下,`HTMLCollection`是一个接口,它通常用于表示HTML文档中的特定类型的集合,比如`document.images`或`element.childNodes`。`HTMLCollection`具有以下特点: 1. `length`:同`NodeList`,表示集合中元素的...
2. childNodes 类型是 NodeList,HTMLCollection 类型是 HTMLCollection", 1. childNodes 获取的
低版本IE数组和HTMLCollection元素集合不兼容forEach循环遍历的处理方法 原生JavaScript通过name获取dom元素得到的是 HTMLCollection元素集合 要想循环遍历可以用forEach,但是在低于ie9的版本下不兼容 var list...
例如,使用 `document.getElementsByTagName('a')` 会返回一个 HTMLCollection,它包含页面上所有的 `<a>` 标签元素。 下面是对这些知识点的一个更加深入的解释: ### HTMLCollection 接口细节 - **属性:** - `...
首先,NodeList、NamedNodeMap和HTMLCollection都是动态集合。这意味着这些集合的内容会随着DOM的变化而实时更新,它们总是保持最新状态。例如,当一个元素被添加到DOM中时,它们会自动更新包含这个新元素;当一个...
const node1 = document.getElementById('node1'); const node2 = document.getElementById('node2'); swapNode(node1, node2); ``` 以上是DOM中的一些基本操作方法及其应用场景,熟练掌握这些方法能够帮助开发者更...
2. `document.querySelectorAll(css选择器)`:与`document.querySelector`方法类似,但是它返回的是一个NodeList对象,包含了所有匹配CSS选择器的元素。这就允许开发者对多个元素进行操作,特别适用于复杂的选择器...
DocumentFragment.querySelectorAll() 返回在 DocumentFragment 中所有的符合指定选择器的 Element 节点组成的 NodeList 数组。DocumentFragment.getElementById() 返回在 DocumentFragment 中以文档顺序排列的第一...
DOM节点还包括NodeList和HTMLCollection,它们分别表示一组节点和HTML元素。NodeList不保证顺序,而HTMLCollection按文档顺序排列。它们都可以通过索引来访问或操作成员。 总结,DOM是前端开发中的基础工具,它提供...
var element = document.getElementById('sid'); ``` - `getElementsByName()`:根据元素的`name`属性获取一组元素(通常用于表单元素)。返回的是一个`NodeList`对象,表示一个动态集合: ```javascript var ...
`HTMLCollection`和`NodeList`都是存储节点的集合,但它们之间存在区别:`HTMLCollection`动态更新并只包含元素节点,而`NodeList`是静态的,可以包含任何类型的节点。 DOM提供了一种结构化的访问和操作文档的方式...
- `Document.all` 是一个HTMLCollection,它包含了文档中所有具有`name`属性的元素,以及没有`name`但有`id`属性的元素。 - `Document.all` 不是实时更新的,如果你在运行时改变DOM,它不会反映这些变化,除非重新...