Element节点为元素节点,对应着html页面中具体的标签html
nodeType为1node
nodeName为相应的标签的名spa
nodeValue为nullhtm
Attr为特性节点,对应着每一个标签中的属性,它是一个节点,可是不存在于DOM的节点树当中对象
nodeType为11ci
nodeName为属性的名称rem
nodeValue为属性具体的值get
<div class="abc" id="_id" dir="ltr" title="_title"></div>it
上面一段代码定义了div的 class(在js中调用class元素时要使用className)dir(从左到右仍是从右到左)title等属性class
当获得div对象后,假设对象名为div
1 能够获得
div.className
div.id
div.dir
div.title
能够获得这些属性的值
同时能够对这些属性的值进行修改
同时也能够添加属性
例如div.align="center"
alert(div.id)
div.id="a"
2 setAttribute():能够修改属性的值,也能够添加属性
例如div.setAttribute("id","abc")
div.setAttribute("other","kkk")//本身增长的属性
div.setAttribute("align",“center”)//增长div具备的属性
getAttribute():获得属性的值,便可以获得系统具备的属性的值,也能够获得本身定义的属性的值
div.getAttribute("id")//获得_id
removeAttribute() 删除属性
3attributes属性
每一个元素都有attributes属性,每一个attributes属性有
getNamedItem()
setNamesItem()
removeNamedItem()
Item()
四个方法
还有一个length属性,表明属性的个数
getNamedItem():获得某一个属性的节点
div.attributes.getNamedItem("id")//返回id属性的节点 也能够写成div.attributes["id"]
div.attributes.getNamedItem("id").nodeValue//获得id属性的值,_id
setNamedItem():为元素添加属性
div.attributes.getNamedItem(newAttr)//newAttr为新建立的元素,添加到了div中
removeNamedItem():删除属性
div.attributes.removeNamedItem("id")//删除了id属性
item():获得某一位置的属性
div.attributes.item(2)//获得第三个,即dir属性 也能够写成div.attributes[2]
div.attributes.length 获得属性的个数
attributes属性是和NodeList同样动态变化的,即每增长一个属性,会立刻在attributes.length中获得反映
每一个属性都有specified属性,为Boolen属性,若是为真,代表这个属性是在元素中定义了或者用js的方法添加到元素中了
若是为假,则说明没有这个元素
attributes主要用于属性的遍历
var arr=new Array();
for(var i=0,var len=div.attributes.length;i<len;i++)
{
if(div.attributes[i].specified)
{
arr.push(div.attributes[i].nodeValue);
}
}
Attr节点
1它有三个属性
name:属性节点的名,至关于nodeName
value:属性节点的值,至关于nodeValue
specified:该属性节点是否被添加到了标签中
例如上面的div.attributes[i]就是一个属性节点
能够获取他的name,value,specified
它有两个方法
createAttribute():建立节点
setAttributeNode();将建立的节点添加到元素中
var ali=document.createAttribute("align")//建立了一个align属性节点
align="center"//为属性节点赋值
div.setAttributeNode(ali)//将属性节点添加到div中