The html element of a document is
the document's root element, if there is one and it's an html element, or null otherwise.
The head element of a document is
the first head element that is a child of
the html element, if there is one,
or null otherwise.
The title element of a document is
the first title element that is a child
of the head element, if there is
one, or null otherwise.
The title attribute must, on
getting, run the following algorithm:
If the root element is an svg
element in the "http://www.w3.org/2000/svg"
namespace, and the user agent supports SVG, then the getter must return
the value that would have been returned by the DOM attribute of the same
name on the SVGDocument interface.
Otherwise, it must return a concatenation of the data of all the child
text nodes of the title element, in tree order, or
the empty string if the title
element is null.
On setting, the following algorithm must be run:
If the root element is an svg
element in the "http://www.w3.org/2000/svg"
namespace, and the user agent supports SVG, then the setter must defer
to the setter for the DOM attribute of the same name on the
SVGDocument interface. Stop the algorithm here.
head element is null,
then the attribute must do nothing. Stop the algorithm here.
title element is null,
then a new title element must be
created and appended to the head
element.
title
element (if any) must all be removed.
Text node whose data is the new value being
assigned must be appended to the title
element.
The title attribute on the HTMLDocument interface should shadow the
attribute of the same name on the SVGDocument interface when
the user agent supports both HTML and SVG.
The body element of a document is the first
child of the html element that is
either a body element or a
frameset element. If there is no such element, it is null. If
the body element is null, then when the specification requires that events
be fired at "the body element", they must instead be fired at the
Document object.
The body
attribute, on getting, must return the body
element of the document (either a body element, a frameset element, or
null). On setting, the following algorithm must be run:
body or
frameset element, then raise a
HIERARCHY_REQUEST_ERR exception and abort these steps.
replaceChild() method had been called
with the new value and the
incumbent body element as its two arguments respectively, then abort
these steps.
The images
attribute must return an HTMLCollection rooted at the
Document node, whose filter matches only img elements.
The links
attribute must return an HTMLCollection rooted at the
Document node, whose filter matches only a elements with href attributes and area elements with href attributes.
The forms
attribute must return an HTMLCollection rooted at the
Document node, whose filter matches only form
elements.
The anchors attribute must
return an HTMLCollection
rooted at the Document node, whose filter matches only
a elements with name attributes.
The getElementsByName(name) method a string name, and must return a live NodeList
containing all the a, applet,
button, form, iframe, img,
input, map, meta, object, select,
and textarea elements in that document that have a name attribute whose value is
equal to the name
argument.
The getElementsByClassName(classNames) method takes a string that
contains an unordered set of space-separated
tokens representing classes. When called, the method must return a
live NodeList object containing all the elements in the
document that have all the classes specified in that argument, having
obtained the classes by splitting a string on spaces. If there are no tokens specified
in the argument, then the method must return an empty
NodeList.
The getElementsByClassName()
method on the HTMLElement
interface must return a live NodeList with the nodes that the
HTMLDocument getElementsByClassName() method
would return when passed the same argument(s), excluding any elements that
are not descendants of the HTMLElement object on which the method was
invoked.
HTML, SVG, and MathML elements define which classes they are in by
having an attribute in the per-element partition with the name class containing a space-separated list of classes to
which the element belongs. Other specifications may also allow elements in
their namespaces to be labelled as being in specific classes. UAs must not
assume that all attributes of the name class for
elements in any namespace work in this way, however, and must not assume
that such attributes, when used as global attributes, label other elements
as being in specific classes.
Given the following XHTML fragment:
<div id="example"> <p id="p1" class="aaa bbb"/> <p id="p2" class="aaa ccc"/> <p id="p3" class="bbb ccc"/> </div>
A call to
document.getElementById('example').getElementsByClassName('aaa')
would return a NodeList with the two paragraphs
p1 and p2 in it.
A call to getElementsByClassName('ccc bbb') would
only return one node, however, namely p3. A call to
document.getElementById('example').getElementsByClassName('bbb ccc ')
would return the same thing.
A call to getElementsByClassName('aaa,bbb') would return
no nodes; none of the elements above are in the "aaa,bbb" class.
The dir attribute on the HTMLDocument interface is defined along
with the dir content
attribute.