The Document Object Model (DOM), Part 4: Manipulating Documents using Properties and Attributes
The Document Object Model (DOM), Part 4 (2)
Manipulating Documents using Properties and Attributes
The simplest way to modify a document is to mingle with its DOM's properties and attributes. The Document Object Model includes two relevant properties you can use: data
and nodeValue
. You can use these properties to modify the content of text nodes only. Both properties are set to the text node's value and are fully interchangeable. Let's take our complex example from column 41:
<HTML>
<HEAD>
<TITLE> DOM Demo </TITLE>
</HEAD>
<BODY ID="bodyNode">This is the document body
<P ID = "p1Node">This is paragraph 1.</P>
<P ID = "p2Node">This is paragraph 2.</P>
<P ID = "p3Node">This is paragraph 3.
<IMG ID = "imgNode" SRC="doc.gif">This text follows the image
<TABLE ID="tableNode">
<TR><TD BGCOLOR=yellow>This is row 1, cell 1</TD>
<TD BGCOLOR=orange>This is row 1, cell 2</TD></TR>
<TR><TD BGCOLOR=red>This is row 2, cell 1</TD>
<TD BGCOLOR=magenta>This is row 2, cell 2</TD></TR>
<TR><TD BGCOLOR=lightgreen>This is row 3, cell 1</TD>
<TD BGCOLOR=beige>This is row 3, cell 2</TD></TR>
</TABLE>
</P>
<P ID = "p4Node">This is paragraph 4.</P>
</BODY>
</HTML>
Now examine the page appearance. Let's focus on the first text node, "This is the document body". This script displays the content of the data
and nodeValue
properties of the node. As you can see, the content of these properties are identical and equal to the string content of the node, "This is the document body". We can change this string by modifying either one of these properties. Let's change the data
property first, by assigning bodyNode.firstChild.data
:
bodyNode.firstChild.data = "This is the new document body,
set by the data property"
// (The above two lines should be joined as one line.
// They have been split for formatting purposes.)
This script demonstrates this property setting and its effect. It also prints the new values of both the data
and nodeValue
properties. Let's repeat the above by modifying the nodeValue
property:
bodyNode.firstChild.nodeValue = "This is the new document body,
set by the nodeValue property"
// (The above two lines should be joined as one line.
// They have been split for formatting purposes.)
This similar script demonstrates the document's new appearance, achieved by setting the nodeValue
property.
The HTML language lets you assign attributes to any element. Some attributes carry certain semantics with them. The IMG
's SRC
attribute, for example, specifies the GIF file that the browser should display. The Document Object Model lets you modify such attributes, and thus manipulate the page. Let's change the GIF on the above page by modifying the p3Node.childNodes[1].src
attribute:
p3Node.childNodes[1].src = "docjsad.gif"
This script demonstrates that the image is now different than in the example above. Notice that all attributes are lowercase, regardless of their case in the corresponding HTML statement. For example, the SRC
attribute of the IMG
element above is in uppercase, while JavaScript requires lowercase attributes only.
Produced by Yehuda Shiran and Tomer Shiran
Created: July 5, 1999
Revised: July 5, 1999
URL: https://www.webreference.com/js/column43/properties.html