在我們掌握了獲取特定元素的方法之后,我們還可以繼續想辦法獲取它的各個屬性(getAttribute方法)和更改節點屬性的值(setAttribute)。
1.getAttribute
getAttribute() 方法返回指定屬性名的屬性值。
使用方法:object.getAttribute(attribute)
它只有一個參數,就是你打算查詢的屬性的名字。
因為getAttribute方法不屬于document對象,所以不能通過document對象調用。它只能通過元素節點對象調用,所以我們這里就要用到getElementsByTagName方法。
還是用到之前的代碼:
在body中加入下面的代碼:
運行結果:
在代碼中,只有一個<p>元素,并且它有title屬性,所以alert對話框中顯示了一段文本就是這個<p>元素的title屬性的值。如若我將title的屬性值改成了空的,那么它會顯示什么呢?這里我就可以用到setAttribute方法來修改了。
2.setAttribute
setAttribute() 方法添加指定的屬性,并為其賦指定的值。
使用方法:object.setAttribute(attribute,value)
這個方法有兩個參數,第一參數是要修改的屬性的名字,第二個參數是屬性修改后的值。
現在我們把<p>元素的屬性修改為空的,進行下面的代碼修改:
運行結果:
? ? ? ?需要注意的是,通過setAttribute對文檔做出修改后,在通過瀏覽器的view source(查看源代碼)選項去查看文檔的源代碼時看到的仍將是改變前的屬性值,也就是說,setAttribute做出的修改不會反映在文檔本身的源代碼里。這種“表里不一”的現象源自DOM的工作模式:先加載文檔的靜態內容,再動態刷新,動態刷新不影響文檔的靜態內容。