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

元素的特性在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()方法远比操作特性节点更为方便。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值