Гораздо лучше разместить ваш код здесь, так как это облегчает тем, кто читает вопрос, и другим, которые ищут позже.Связанные примеры ненадежны и, вероятно, не будут сохраняться долго.
Копирование по ссылке (и форматирование для публикации):
<style type="text/css">
.redText, .blueText { font-family: Arial; }
.redText { color : red; }
.blueText { color : blue; }
</style>
<script language="javascript" type="text/javascript">
Атрибут языка устарел в течение очень долгого времени., это не должно использоваться.Атрибут type является обязательным, поэтому имейте это в виду.
function changeCssClass(navlink)
Атрибут класса HTML не предназначен для CSS, он используется для группировки элементов.Лучшее имя может быть changeClassName .
{
if(document.getElementById(navlink).className=='redText')
{
document.getElementById(navlink).className = 'blueText';
}
else
{
document.getElementById(navlink).className = 'redText';
}
}
</script>
<a href="#" onclick="changeCssClass('navlink')" id="navlink" class="redText">Link 1</a><br><br>
При вызове функции, связанной со встроенным слушателем, будет установлено ключевое слово this для элемента, поэтомуВы можете вызвать функцию как:
<a ... onclick="changeCssClass(this);" ...>
Тогда вам не нужно передавать идентификатор, и вам не нужно getElementById в функции.
Вы можетерассмотрим функцию, которая «переключает» класс: добавляя его, если его нет, или удаляя, если он есть.Вам нужно написать несколько небольших функций, таких как hasClass , addClass и removeClass , тогда ваш слушатель может быть:
function toggleClass(el, className) {
if (hasClass(el, className) {
removeClass(el, className);
} else {
addClass(el, className);
}
}
Тогданазначьте своим ссылкам стиль по умолчанию, используя правило стиля (т. е. примените стиль redText ко всем ссылкам), затем просто добавьте и удалите класс blueText .
Вы можететакже рассмотрите возможность размещения единственной функции в родительском элементе ссылок для обработки щелчков по элементам A, т. е. делегирования событий.