У меня есть следующая страница HTML (страница здесь упрощена, так как она является образцом реального):
<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>
И у меня есть файл Painting.js(опять же, немного упрощен):
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';
}
Основная идея:
- Найти элемент HTML, вызвавший событие.
- Поднимитесь до тех пор, пока вы не достигнете элемента
<ul>
. - Перебирать элементы списка; найдите теги
<a>
и измените их цвет и фон - После выхода из цикла измените цвет и фон HTML-элемента, вызвавшего событие.
Теперь я не могу попасть в часть, расположенную в цикле for. Я думаю, что ошибаюсь, вызвав метод GetElementsByTagName(). Не могли бы вы мне помочь? Благодарю.