在写javascript代码的时候肯定多多少少会涉及到dom的操作,可是呢一会是dom核心一会domHTML的,让人云里雾里,所以干脆就来个大清查,把祖祖孙孙子子辈辈的关系图弄个清楚 :D 。
1.首先DOM不是javascript,它是文档。DOM的存在和javascript没有关系,有javascript 的出现DOM
在那里,没有出现,DOM还在那里。DOM是一组用来描述脚本怎样与结构性文档进行交互和访问的Web标准。DOM定义了一系列的对象、方法和属性,用于访问、操作和创建文档中的内容、结构、样式以及行为。
2.DOM级别
DOM总共有三个级别,DOM1、DOM2、DOM3,DOM3有些规范有些现代浏览器开始支持了。具体就不赘述了。
如果你想检验浏览器支持何种W3C DOM特性,可以使用DOMImplementation对象,该对象在核心规范中规定。在Web浏览器中,DOMImplementation对象被实例化为document.implementation。如果浏览器的官方声称支持某种特性,你就可以用document.implementation.hasFeature()方法进行检验啦。document.implementation.hasFeature()方法接受两个参数,第一个参数就是下列之一。
Core:DOM 1级和2级的基本方法,以及DOM2级中XML命名空间。
XML:DOM 1级、2级、3级、中的XML 1.0。
HTML:DOM 1级、2级、3级中的HTML4.0和DOM2级中对XHTML1.0的支持。
Views:DOM2级中,用于CSS和UIEvents模块。
StyleSheets:DOM2级,针对关联样式表和文档。
CSS:DOM2级,针对层叠样式表进行的扩展。
CSS2:DOM2级,针对层叠样式表2级进行的扩展。
Events:DOM2级,针对一般事件。
UIEvents:DOM2级,针对一般用户界面事件
MutationEvents:DOM2级,针对DOM树中的事件变化
MouseEvents:DOM2级,针对一般鼠标事件
HTMLEvents:DOM2级,针对HTML4.01的特定事件
Range:DOM2级,针对DOM树中的范围操作
Traversal:DOM2级,对DOM树的迭代和遍历方法
LS:DOM3级,动态将文档加载到DOM树中。
LS-Async:DOM3级,动态异步将文档加载到DOM树中。
Validation:DOM3级,对面向模式(schema)修正DOM的支持。
第二个参数就是DOM的级别,即1.0,2.0,3.0.
2.DOM2 核心和DOM2 HTML中几乎每一个对象的基础都是Node对象。Element对象、HTMLelement对象、document对象和HTMLdocument对象也是如此。
so,我们看看Node对象的属性和方法
a:nodeName,nodeValue,nodeType
b:为了在树中定位,所以又有一些用于定位的属性
parentNode、childNodes、previousSibling、nextSibling、firstChild、lastChild.
c:节点的属性被包含在相应节点的attributes成员的一个NamedNodeMap对象中,节点的属性是核心对象Attr对象的实例。attributes是Node接口定义的属性,但是又与parentNode不同。attributes还实现了Attr和NamedNodeMap接口。
访问属性:item(i),[ ],访问方法:getNamedItem()
d节点的ownerDocument属性,指向的是节点所属根文档的引用。
e:检测子节点和属性
hasChildNodes(),hasAttributes()(注意:此方法ie不支持!)
f:操纵DOM节点树
插入:appendChild(),insertBefore()
替换和删除:replaceChild(),removeChild()
复制:cloneNode(true)cloneNode(false)
3:核心Element对象
为了简化对attributes的处理,提供了很多操作attributes属性的方法
a:getAttribute(),setAttribute(),removeAttribute(),getAttributeNode(),setAttributeNode(),removeAttributeNode()
b:getElementsByTagName()
c:属性:tagName
4:核心Document对象
a:在W3C DOM规范诞生之前,window.document就已经在DHTML中存在的。
document.documentElement(相当于html),window.document表示文档节点,document.body表示body节点,document.head表示head节点
b:Document对象的方法创建节点
方法很多,常用的是:createAttribute(),creatElement(),createTextNode()
c:使用Document对象的方法查找Element对象
getElementById(),getElementsByTagName()
5:DOM2HTML中的HTMLDocument对象
属性:title,referrer,domain,URL,body,images,applets,links,forms,anchors,cookie
方法:open(),close(),write(),writeln(),getElementsByName()
6:DOM2HTML中的HTMLElement对象
属性:id,title,lang,dir,className
其中title的含义:用于进一步对元素进行语义化描述和悬停工具条
1.首先DOM不是javascript,它是文档。DOM的存在和javascript没有关系,有javascript 的出现DOM
在那里,没有出现,DOM还在那里。DOM是一组用来描述脚本怎样与结构性文档进行交互和访问的Web标准。DOM定义了一系列的对象、方法和属性,用于访问、操作和创建文档中的内容、结构、样式以及行为。
2.DOM级别
DOM总共有三个级别,DOM1、DOM2、DOM3,DOM3有些规范有些现代浏览器开始支持了。具体就不赘述了。
如果你想检验浏览器支持何种W3C DOM特性,可以使用DOMImplementation对象,该对象在核心规范中规定。在Web浏览器中,DOMImplementation对象被实例化为document.implementation。如果浏览器的官方声称支持某种特性,你就可以用document.implementation.hasFeature()方法进行检验啦。document.implementation.hasFeature()方法接受两个参数,第一个参数就是下列之一。
Core:DOM 1级和2级的基本方法,以及DOM2级中XML命名空间。
XML:DOM 1级、2级、3级、中的XML 1.0。
HTML:DOM 1级、2级、3级中的HTML4.0和DOM2级中对XHTML1.0的支持。
Views:DOM2级中,用于CSS和UIEvents模块。
StyleSheets:DOM2级,针对关联样式表和文档。
CSS:DOM2级,针对层叠样式表进行的扩展。
CSS2:DOM2级,针对层叠样式表2级进行的扩展。
Events:DOM2级,针对一般事件。
UIEvents:DOM2级,针对一般用户界面事件
MutationEvents:DOM2级,针对DOM树中的事件变化
MouseEvents:DOM2级,针对一般鼠标事件
HTMLEvents:DOM2级,针对HTML4.01的特定事件
Range:DOM2级,针对DOM树中的范围操作
Traversal:DOM2级,对DOM树的迭代和遍历方法
LS:DOM3级,动态将文档加载到DOM树中。
LS-Async:DOM3级,动态异步将文档加载到DOM树中。
Validation:DOM3级,对面向模式(schema)修正DOM的支持。
第二个参数就是DOM的级别,即1.0,2.0,3.0.
2.DOM2 核心和DOM2 HTML中几乎每一个对象的基础都是Node对象。Element对象、HTMLelement对象、document对象和HTMLdocument对象也是如此。
so,我们看看Node对象的属性和方法
a:nodeName,nodeValue,nodeType
b:为了在树中定位,所以又有一些用于定位的属性
parentNode、childNodes、previousSibling、nextSibling、firstChild、lastChild.
c:节点的属性被包含在相应节点的attributes成员的一个NamedNodeMap对象中,节点的属性是核心对象Attr对象的实例。attributes是Node接口定义的属性,但是又与parentNode不同。attributes还实现了Attr和NamedNodeMap接口。
访问属性:item(i),[ ],访问方法:getNamedItem()
d节点的ownerDocument属性,指向的是节点所属根文档的引用。
e:检测子节点和属性
hasChildNodes(),hasAttributes()(注意:此方法ie不支持!)
f:操纵DOM节点树
插入:appendChild(),insertBefore()
替换和删除:replaceChild(),removeChild()
复制:cloneNode(true)cloneNode(false)
3:核心Element对象
为了简化对attributes的处理,提供了很多操作attributes属性的方法
a:getAttribute(),setAttribute(),removeAttribute(),getAttributeNode(),setAttributeNode(),removeAttributeNode()
b:getElementsByTagName()
c:属性:tagName
4:核心Document对象
a:在W3C DOM规范诞生之前,window.document就已经在DHTML中存在的。
document.documentElement(相当于html),window.document表示文档节点,document.body表示body节点,document.head表示head节点
b:Document对象的方法创建节点
方法很多,常用的是:createAttribute(),creatElement(),createTextNode()
c:使用Document对象的方法查找Element对象
getElementById(),getElementsByTagName()
5:DOM2HTML中的HTMLDocument对象
属性:title,referrer,domain,URL,body,images,applets,links,forms,anchors,cookie
方法:open(),close(),write(),writeln(),getElementsByName()
6:DOM2HTML中的HTMLElement对象
属性:id,title,lang,dir,className
其中title的含义:用于进一步对元素进行语义化描述和悬停工具条