关于DOM的内容有很多,今天把省下来的几种类型都介绍一遍。
1.Element类型(元素类型)
关于元素类型,可以通过nodeName或者tagName对其进行访问。这两个属性都会返回相同的值,即元素的名称(大写,例如:DIV)。但是在XML语言中,标签名会和源代码中保持一致,所以在比较的时候都将其转换为小写的这样可以保证正确性。
关于取得元素特性有以下几种方法:
getAttribute():这个是获取元素上某个属性的值,属性名不区分大小写,若不存在则返回null。
注意:style属性如果通过DOM对象进行访问的时候返回的是一个对象,通过getAttribute获取的时候返回的是字符串。还有一种就是在元素上的事件函数,如果通过DOM对象进行访问的话返回的是JavaScript代码,如果通过getAttribute访问的话返回的是相应代码的字符串。
所以一般在取得自定义属性的情况下才会用getAttribute。
setAttribute():给元素设置某个特性。第一个参数是要设置的属性名,第二个参数是设置的属性值。
removeAttribute():这个方法用于彻底删除元素特性。
attributes属性:这个属性是元素节点独有的属性。这个属性包含一个NameNodeMap,和NodeList类似。该属性下面有以下几个方法:
getNamedItem(name):返回nodeName属性等于name的节点。
removeNamedItem(name):从列表移除nodeName等于name的节点。
setNamedItem(name):向列表添加节点,以节点的nodeName属性为索引。
item(pos):返回位于数字pos的节点。
以上每个节点的nodeName就是特性的名称,nodeValue就是特性的值。
document.createElement(tagName):这个方法可以用来创建一个元素,但是会出现一些问题,例如不能动态的设置iframe的name的属性,不能通过表单的reset()方法重置动态插入的input元素,通过动态插入type为reset的button元素不能重置表单等。
这里介绍一种叫做文档碎片的内容--DocumentFragment类型,它在文档中没有特定的标记,DOM规定其实一种轻量级的文档,可以包含和控制节点,但是不会像整个文档那样占用很多资源,所以很多情况下可以将其作为"仓库"来使用(将即将插入文档中的一些节点保存在其中)。
创建文档碎片的方法是document.createDocumentFragment()方法。文档片段继承Node的所有方法,如果将文档中的节点添加到文档碎片中,就会从树中移除该节点,也不会从浏览器中看到该节点。添加到文档碎片中的节点也不属于文档树,可以通过插入节点的方法将文档碎片中的内容添加到文档树的相应位置上。