Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The HTMLAllCollection
interface represents a collection of all of the document's elements, accessible by index (like an array) and by the element's id
. It is returned by the document.all
property.
HTMLAllCollection
has a very similar shape to HTMLCollection
, but there are many subtle behavior differences — for example, HTMLAllCollection
can be called as a function, and its item()
method can be called with a string representing an element's id
or name
attribute.
Instance properties
-
HTMLAllCollection.length
Read only
-
Returns the number of items in the collection.
Instance methods
HTMLAllCollection.item()
-
Returns the element located at the specified offset into the collection, or the element with the specified value for its id
or name
attribute. Returns null
if no element is found.
HTMLAllCollection.namedItem()
-
Returns the first element in the collection whose id
or name
attribute match the given string name, or null
if no element matches.
Usage in JavaScript
Indexed access
In addition to the methods above, elements in an HTMLAllCollection
can be accessed by integer indices and string property names. The HTML id
attribute may contain :
and .
as valid characters, which would necessitate using bracket notation for property access. collection[i]
is equivalent to collection.item(i)
, where i
can be an integer, a string containing an integer, or a string representing an id
.
Calling as a function
An HTMLAllCollection
object is callable. When it's called with no arguments or with undefined
, it returns null
. Otherwise, it returns the same value as the item()
method when given the same arguments.
Special type conversion behavior
For historical reasons, document.all
is an object that in the following ways behaves like undefined
:
These special behaviors ensure that code like:
Will continue to provide modern behavior even if the code is run in a browser that implements document.all
for compatibility reasons.
However, in all other contexts, document.all
remains an object. For example:
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
HTMLAllCollection |
5 |
12 |
32 |
11 |
15 |
5 |
≤37 |
18 |
32 |
14 |
4 |
1.0 |
item |
5 |
12 |
32 |
11 |
15 |
5 |
3 |
18 |
32 |
14 |
4 |
1.0 |
length |
6 |
12 |
32 |
11 |
15 |
5 |
3 |
18 |
32 |
14 |
4 |
1.0 |
namedItem |
5 |
12 |
32 |
11 |
15 |
5 |
3 |
18 |
32 |
14 |
4 |
1.0 |
See also