HTMLAllCollection

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

HTMLAllCollection 介面表示文件中所有元素的集合,可以透過索引(類似於陣列)和元素的 id 進行訪問。它由 document.all 屬性返回。

HTMLAllCollection 的形狀與 HTMLCollection 非常相似,但存在許多細微的行為差異——例如,HTMLAllCollection 可以像函式一樣呼叫,並且其 item() 方法可以接受一個字串引數,該字串代表元素的 idname 屬性。

例項屬性

HTMLAllCollection.length 只讀

返回集合中專案的數量。

例項方法

HTMLAllCollection.item()

返回集合中指定偏移量的元素,或者返回 idname 屬性值與給定字串匹配的元素。如果沒有找到元素,則返回 null

HTMLAllCollection.namedItem()

返回集合中第一個 idname 屬性與給定字串名稱匹配的 元素,如果找不到匹配的元素,則返回 null

在 JavaScript 中使用

索引訪問

除了上述方法外,HTMLAllCollection 中的元素還可以透過整數索引和字串屬性名進行訪問。HTML id 屬性可能包含 :. 作為有效字元,這需要使用方括號表示法進行屬性訪問。collection[i] 等同於 collection.item(i),其中 i 可以是整數、包含整數的字串,或者代表 id 的字串。

作為函式呼叫

HTMLAllCollection 物件是可呼叫的。當它不帶引數或以 undefined 呼叫時,它返回 null。否則,它返回的值與使用相同引數呼叫 item() 方法時返回的值相同。

特殊型別轉換行為

出於歷史原因,document.all 是一個物件,但在以下方面表現得像 undefined

  • 它與 undefinednull 鬆散相等
  • 在布林值上下文中,它是 假值
  • 它的 typeof"undefined"

這些特殊行為確保了像以下這樣的程式碼

js
if (document.all) {
  // Assume that we are in IE; provide special logic
}
// Assume that we are in a modern browser

即使程式碼在出於相容性原因實現了 document.all 的瀏覽器中執行,也能提供現代行為。

然而,在所有其他上下文中,document.all 仍然是一個物件。例如:

規範

規範
HTML
# the-htmlallcollection-interface

瀏覽器相容性

另見