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替代 |