關(guān)于Attr對(duì)像中的三個(gè)屬性name、value、specified、如何使用,在使用過程中需要注意那些問題,我們將通過此文章進(jìn)行介紹,元素的特性在DOM中以Attr類型來表示。在所有瀏覽器中(包括IE8),都可以訪問Attr類型的構(gòu)造函數(shù)和原型。從技術(shù)角度講,特性就是存在于元素的attributes屬性中的節(jié)點(diǎn)。特性節(jié)點(diǎn)具有下列特征:
◎nodeType的值為11;
◎nodeName的值是特性的名稱;
◎nodeValue的值是特性的值;
◎parentNode的值為null;
◎在HTML中不支持(沒有)子節(jié)點(diǎn);
◎在XML中子節(jié)點(diǎn)可以是Text或EntityRef erence。
盡管它們也是節(jié)點(diǎn),但特性卻不被認(rèn)為是DOM文檔樹的一部分。開發(fā)人員最常使用的是getAt- tribute()、setAttribute()和remveAt tribute()方法,很少直接引用特性節(jié)點(diǎn)。
Attr對(duì)象有3個(gè)屬性:name、value和specified。其中,name是特性名稱(與nodeName的 值相同),value是特性的值(與nodeValue的值相同),而specified是一個(gè)布爾值,用以區(qū)別特性是在代碼中指定的,還是默認(rèn)的。
使用document.createAttribute()并傳入特性的名稱可以創(chuàng)建新的特性節(jié)點(diǎn)。例如,要為元素添加align特性,可以使用下列代碼:
var element=document.getElementByld("myDiv");
var attr=document.createAttribute("align");
attr.value="left";
element.setAttributeNode(attr);
alert{ element.attriloutes["align"].value); //"left"
alert (element. getAttributeNode("align") .value); //"left"
alert(element. getAttribute("align")); //"left"
這個(gè)例子創(chuàng)建了一個(gè)新的特性節(jié)點(diǎn)。由于在調(diào)用createAttribute()時(shí)已經(jīng)為name屬性賦了值,所以后面就不必給它賦值了。之后,又把value屬性的值設(shè)置為"left"。為了將新創(chuàng)建的特性添加到元素中,必須使用元素的setAttributeNode()方法。添加特性之后,可以通過下列任何方式訪問該特性:attributes屬性、getAttributeNode()方法以及getAttribute()方法。其中,attributes 和getAttributeNode()都會(huì)返回對(duì)應(yīng)特性的Attr節(jié)點(diǎn),而getAttribute()則只返回特性的值。
我們并不建議直接訪問特性節(jié)點(diǎn)。實(shí)際上,使用getAttribute()、setAttribute() 和removeAttribute()方法遠(yuǎn)比操作特性節(jié)點(diǎn)更為方便。
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò)http://www.gimmickmag.com/如轉(zhuǎn)載請(qǐng)注明出處!