| |
Identifying Elements
When you write scripts and style sheets, you may want your code to apply to
one particular element, to all elements of the same type, or to a heterogeneous set
of elements that you specify. Element objects have several properties that make
them easy to identify in these various ways. An object's
id and className properties contain the values of the corresponding element's ID and CLASS attributes,
respectively, and its tagName property contains the name of the element's tag. Your
code can use the id property to reference a single element, the
tagName property to reference all elements of the same type, or the
className property to reference any set you define.
Elements that have a NAME attribute also have a
name property that contains the attribute's value. You can use the
name property to identify a single element
or a group of related elements (such as radio buttons) in your code. But the
name property isn't as widely applicable as the
id property, for example, and the object
model includes it mainly for backward compatibility.
Values of the tagName property are stored in all uppercase letters. The
id, name, and className properties are case sensitive. The value
coolstuff, for example, represents a different class than the value
cOOlStuff in a case-sensitive language like JavaScript. Style sheets, however, are associated to elements without regard
to capitalization.
The following table summarizes information about the four properties
that identify elements.
| Attribute |
Property |
Case-Sensitive? |
Applicable Elements |
| (None) |
tagName |
Always uppercase |
All, including comments |
| ID |
id |
Yes |
All, except comments |
| CLASS |
className |
Yes |
All, except comments |
| NAME |
name |
Yes |
Anchor, Applet, Button, Form, IMG, Input, Map, Meta, Object, Select, and TextArea |
Using properties to identify elements, you can write a single script that
performs the same action for all the elements in whatever set you choose. The click
event handler in the following sample code responds differently to mouse clicks on
the element with an id value of f123, on elements in the class
coolstuff, and on H1 elements. In each case, the handler changes the inline style of the element to alter
the element's appearance.
<HTML>
<HEAD>
<TITLE>Identifying Elements</TITLE>
<SCRIPT FOR="document" EVENT="onclick()" LANGUAGE="JavaScript">
// The click event is fired on the document regardless of
// where the user clicks.
// The style property gives access to the inline style.
var curElement = event.srcElement;
if ("F123" == curElement.id.toUpperCase()) {
// Toggle element color between red and blue.
if ("red" == curElement.style.color)
curElement.style.color = "blue";
else
curElement.style.color = "red";
}
if ("COOLSTUFF" == curElement.className.toUpperCase()) {
// Make text bigger or smaller when clicked.
if ("" == curElement.style.fontSize)
curElement.style.fontSize = "150%";
else
curElement.style.fontSize = "";
}
if ("H1" == curElement.tagName) {
// Toggle the header between centered and left-aligned.
if ("center" == curElement.align)
curElement.align = "";
else
curElement.align = "center";
}
</SCRIPT>
</HEAD>
<BODY>
<P ID="f123" STYLE="color:red">
This paragraph has a unique ID.</P>
<H1>Clicking on an H1 element changes its alignment.</H1>
<P>This paragraph contains
<STRONG CLASS="coolstuff">cool stuff.</STRONG>
</P>
<H1 CLASS="coolstuff">
This header is also cool stuff.
</H1>
</BODY>
</HTML>
In the preceding code, the className and
id values are converted to uppercase before making comparisons; these values are thus treated on a
case-insensitive basis. [Содержание]
|