Latest web development tutorials

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 中的節點。


瀏覽器支持

Internet ExplorerFirefoxOperaGoogle ChromeSafari

所有主流瀏覽器都支持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替代