We'll start with the basics - a very simple HTML page.
<html>
<head>
</head>
<body bgcolor="white">
<div id="a" style="font-family: Arial; color: white;
background: black">Wassup?</div>
</body>
</html>
Let's alter the font colour of the text within the <div>.
In Internet Explorer, this would typically be accomplished with
<script language="JavaScript"> document.all.a.style.color = "red"; </script>
Here's the code I would use in Mozilla:
<script language="JavaScript"> var obj = document.childNodes[0].childNodes[1].childNodes[0]; obj.style.color = "red"; </script>
An explanation is in order here. Under the new DOM, every element in an HTML document is part of a "tree", and you can access each and every element by navigating through the tree "branches" until you reach the corresponding "node". Given that, here's my representation of the HTML document above, in "tree" form.
document
| -- <html>
| -- <head>
| -- <body>
| -- <div>
Now, to get to the <div>, I need to:
- start at the top ("
document"); - move down to the main branch - the
<html>tag, or "document.childNodes[0]"; -
then to the second sub-branch - the <body> tag or
"document.childNodes[0].childNodes[1]"; then to the
"<div>document.childNodes[0].childNodes[1].childNodes[0]";
At this point, I have successfully navigated my way to the <div>
element in the document tree. A quick way of verifying this is to use an alert()
on the object
<script language="JavaScript"> var obj = document.childNodes[0].childNodes[1].childNodes[0]; alert(obj.nodeName); obj.style.color = "red"; </script>
which displays the name of the tag - DIV - in an alert box.
At this point, I can begin futzing with object attributes - in the example above,
I've altered the "color" style attribute. Don't worry about this for the moment;
simply verify that you have understood the manner in which I navigated through the
document tree to reach the DIV.