您的位置:首页 > Web前端 > JavaScript

JavaScript高级程序设计之DOM之节点层次之Attr类型第10.1.9讲

2015-11-03 15:49 591 查看

元素的特性在DOM 中以Attr 类型来表示。在所有浏览器中(包括IE8),都可以访问Attr 类型

的构造函数和原型。从技术角度讲,特性就是存在于元素的attributes 属性中的节点。特性节点具有

下列特征:

nodeType 的值为2;

nodeName 的值是特性的名称;

nodeValue 的值是特性的值;

parentNode 的值为null;

在HTML 中不支持(没有)子节点;

在XML 中子节点可以是Text 或EntityReference。

尽管它们也是节点,但特性却不被认为是DOM 文档树的一部分。开发人员最常使用的是getAt-tribute()、setAttribute()和remveAttribute()方法,很少直接引用特性节点。

Attr 对象有3 个属性:name、value 和specified。其中,name 是特性名称(与nodeName 的

值相同),value 是特性的值(与nodeValue 的值相同),而specified 是一个布尔值,用以区别特

性是在代码中指定的,还是默认的。

使用document.createAttribute()并传入特性的名称可以创建新的特性节点。例如,要为元素

添加align 特性,可以使用下列代码:

var attr = document.createAttribute("align");
attr.value = "left";
element.setAttributeNode(attr);
alert(element.attributes["align"].value); //"left"
alert(element.getAttributeNode("align").value); //"left"
alert(element.getAttribute("align")); //"left"
这个例子创建了一个新的特性节点。由于在调用createAttribute()时已经为name 属性赋了值,

所以后面就不必给它赋值了。之后,又把value 属性的值设置为"left"。为了将新创建的特性添加到

元素中,必须使用元素的setAttributeNode()方法。添加特性之后,可以通过下列任何方式访问该

特性:attributes 属性、getAttributeNode()方法以及getAttribute()方法。其中,attributes

和getAttributeNode()都会返回对应特性的Attr 节点,而getAttribute()则只返回特性的值。
我们并不建议直接访问特性节点。实际上,使用getAttribute()、setAttribute()

和removeAttribute()方法远比操作特性节点更为方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: