JS高级程序设计之DOM

2017-03-22  本文已影响0人  无怨无悔天真无邪

DOM是其他语言与HTM、XML的API,通过这些接口可以对文档的结构进行描绘操作。如今DOM已经成为表现和操作页面标记的真正跨平台、语言中立的方式。

DOM共有12中节点类型,他们都来自一个基类型(HTML元素)

一、DOM节点层次

1)node类型
2)Document类型

documentElement的一些属性需要文档声明才不会报错,body则反之,所以它们都一些兼容性的问题


页面结构距离,来源见水印页面结构距离,来源见水印

因为document是Document类型的实例,所以这两个方法都继承下来了

tagName方法会返回一个HTMLCollection对象(与NodeList对象类似,但不同!),这个对象除了经常用的[ ]访问,还可以用namedItem()方法访问

document.writeln()输出字符串后会加上换行符/n

3)Element类型

只有在取得自定义特性值时,才会使用getAttribute()方法

可通过getNameItem()方法和类似数组的【】的访问
创建元素document.createElement()*;
方法存在兼容性以及一些特定元素属性不能设置或失效的问题

元素的子节点element.childNodes*;

由于这个属性会将所有子节点获取,所以通常需要用nodeType属性筛选
这一张的详细解读可以看别人写的博客

4)Text类型
5)Comment类型)(即注释)
6)CDATSection类型

继承自Text类型(无splitText()方法),主流浏览器无法解析

7)DocumentType类型(文档声明)
8)DocumentFragment类型

*document.createDocumentFragment();

9)Attr类型(不懂将它提出的意义)

二、DOM操作技术

*动态添加JS和CSS代码,script和style两个元素可用element方法创建,并添加相应属性
*操作表格(专有的DOM操作)
*NodeList的动态性(还有NameNodeMap和HTMLCollection)

DOM会带来多次渲染和查询,非常影响性能,所以应该尽量减少操作

关于NodeList NamedNodeMap 及 HTMLCollection

上一篇 下一篇

猜你喜欢

热点阅读