HTML DOM 屬性 對象
HTML DOM 節點
在 HTML DOM (Document Object Model) 中, 所有的都是 節點:
- 文檔是文檔節點
- 所有 HTML 元素是元素節點
- 所有 HTML 屬性都是屬性節點
- 插入到 HTML 元素中的文本為文本節點
- 注釋是注釋節點
Attr 對象
在 HTML DOM 中, Attr 對象 代表一個 HTML 屬性。
HTML屬性總是屬於HTML元素。
NamedNodeMap 對象
在 HTML DOM 中, the NamedNodeMap 對象 表示一個無順序的節點列表。
我們可通過節點名稱來訪問 NamedNodeMap 中的節點。
流覽器支持
所有主流流覽器都支持 Attr 對象和 NamedNodeMap 對象。
屬性 / 方法 | 描述 |
---|---|
attr.isId | 如果屬性是 ID 類型,則 isId 屬性返回 true,否則返回 false。 |
attr.name | 返回屬性名稱 |
attr.value | 設置或者返回屬性值 |
attr.specified | 如果屬性被指定返回 true ,否則返回 false |
nodemap.getNamedItem() | 從節點列表中返回的指定屬性節點。 |
nodemap.item() | 返回節點列表中處於指定索引號的節點。 |
nodemap.length | 返回節點列表的節點數目。 |
nodemap.removeNamedItem() | 刪除指定屬性節點 |
nodemap.setNamedItem() | 設置指定屬性節點(通過名稱) |
DOM 4 警告 !!!
在 W3C DOM 內核中, Attr (屬性) 對象繼承節點對象的所有屬性和方法 。
在 DOM 4 中, Attr (屬性) 對象不再從節點對象中繼承。
從長遠的代碼品質來考慮,在屬性對象中你需要避免使用節點對象屬性和方法:
屬性 / 方法 | 避免原因 |
---|---|
attr.appendChild() | 屬性沒有子節點 |
attr.attributes | 屬性沒有屬性 |
attr.baseURI | 使用 document.baseURI 替代 |
attr.childNodes | 屬性沒有子節點 |
attr.cloneNode() | 使用 attr.value 替代 |
attr.firstChild | 屬性沒有子節點 |
attr.hasAttributes() | 屬性沒有屬性 |
attr.hasChildNodes | 屬性沒有子節點 |
attr.insertBefore() | 屬性沒有子節點 |
attr.isEqualNode() | 沒有意義 |
attr.isSameNode() | 沒有意義 |
attr.isSupported() | 通常為 true |
attr.lastChild | 屬性沒有子節點 |
attr.nextSibling | 屬性沒有兄弟節點 |
attr.nodeName | 使用 attr.name 替代 |
attr.nodeType | 通常為 2 (ATTRIBUTE-NODE) |
attr.nodeValue | 使用 attr.value 替代 |
attr.normalize() | 屬性沒有規範 |
attr.ownerDocument | 通常為你的 HTML 文檔 |
attr.ownerElement | 你用來訪問屬性的 HTML 元素 |
attr.parentNode | 你用來訪問屬性的 HTML 元素 |
attr.previousSibling | 屬性沒有兄弟節點 |
attr.removeChild | 屬性沒有子節點 |
attr.replaceChild | 屬性沒有子節點 |
attr.textContent | 使用 attr.value 替代 |