145
rated 0 times
[
152]
[
7]
/ answers: 1 / hits: 70403
/ 14 Years ago, tue, october 26, 2010, 12:00:00
I have the following HTML page (page is simplified here as it is a sample of the real one):
<html>
<head>
<script type=text/javascript src=JavaScript/Painting.js></script>
</head>
<body>
<div id=center-wrapper>
<div id=side-menu>
<ul>
<li><a onclick=Paint()>About</a></li>
<li><a onclick=Paint()>Contents</a></li>
<li><a onclick=Paint()>Visual</a></li>
<li><a onclick=Paint()>CSS</a></li>
<li><a onclick=Paint()>Javascript</a></li>
</ul>
</div>
</div>
</body>
</html>
And I have the Painting.js file (again, a bit simplified):
function Paint()
{
var e = window.event;
var sender;
if (e.target)
{
sender = e.target;
}
else
{
if (e.srcElement)
{
sender = e.srcElement;
}
}
for (element in sender.parentNode.parentNode.getElementsByTagName(a))
{
element.style.color = 'blue';
element.style.backgroundColor = '#FFFFFF';
}
sender.style.color = '#FFFFFF';
sender.style.backgroundColor = '#000000';
}
The basic idea is:
- Find a HTML element that caused the event.
- Go up until you reach the
<ul>
element. - Loop through the list items; find the
<a>
tags and change their color and background - Upon exiting the loop, change the color and the background of the HTML element that caused the event.
Now, I can't seem to get to the part located in the for loop. I think I am making a mistake by calling GetElementsByTagName() method. Could you help me out? Thanks.
More From » dom