15. 属性操作
HTML元素由一个标签和一组称为属性(attribute)的名/值对组成。表示HTML文档元素的HTMLElement对象定义了读/写属性,它们反映了元素的HTML属性。HTMLElement定义了通用的HTTP属性(如id)的属性,特定的Element子类型为其元素定义了特定的属性。例如查询一张图片的URL,可以使用img元素的HTMLElement对象的scr属性:
<xmp>
var image = document.getElementById("myimg");
var imgurl = image.scr;
image.id = "myimage";
</xmp>
HTML属性名不区分大小写,但Javascript属性名则大小写敏感。从HTML属性名转换到Javascript属性名应该采用小写。
1.获取属性
,Element类型定义了getAttribute()来查询HTML属性。
<xmp>
var div = document.getElementById("myDiv");
alert(div.getAttribute("id")); //"myDiv"
alert(div.getAttribute("class")); //"bd"
alert(div.getAttribute("title")); //"Body text"
alert(div.getAttribute("lang")); //"en"
alert(div.getAttribute("dir")); //"ltr"
</xmp>
注意,传递给 getAttribute() 的特性名与实际的特性名相同。
getAttribute() 方法也可以取得自定义特性(即标准 HTML 语言中没有的特性)的值。
不过,特性的名称是不区分大小写的,即 “ID” 和 “id” 代表的都是同一个特性。另外也要注意,根据 HTML5 规范,自定义特性应该加上 data- 前缀以便验证。
2.设置属性
与 getAttribute() 对应的方法是 setAttribute() ,这个方法接受两个参数:要设置的特性名和值。如果特性已经存在, setAttribute() 会以指定的值替换现有的值;如果特性不存在, setAttribute()则创建该属性并设置相应的值。
<xmp>
div.setAttribute("id", "someOtherId");
div.setAttribute("class", "ft");
div.setAttribute("title", "Some other text");
div.setAttribute("lang","fr");
div.setAttribute("dir", "rtl");
</xmp>
通过 setAttribute() 方法既可以操作 HTML 特性也可以操作自定义特性。通过这个方法设置的特性名会被统一转换为小写形式,即 “ID” 最终会变成 “id” 。
3.删除属性
removeAttribute() ,这个方法用于彻底删除元素的特性。调用这个方法不仅会清除特性的值,而且也会从元素中完全删除特性.
<xmp>
div.removeAttribute("class");
</xmp>
注:IE6 及以前版本不支持 removeAttribute() 。