function rowClick() {
this.className = this.className == "selected" ? "" : "selected";
}
} Часть 2 — с использованием Prototype
Теперь попробуем сделать то же самое, используя популярную JavaScript-библиотеку Prototype. Функцию $ можно использовать вместо document.getElementById. Удобная функция Element.toggleClassName имеет два аргумента элемент и имя CSS класса, она добавляет CSS класс элементу (если у элемента не было такого класса) или убирает (если был).
function rowClick() {
Element.toggleClassName(this, "selected");
}
}
Преимущество использования Prototype в данном случае — простая работа с множественными CSS классами, что позволяет легко расширять функциональность (см. часть 3).
Часть 3 — с использованием Prototype и полосатой таблицей
Весьма уместным дополнением может стать полосатая раскраска таблицы. Оказывается, к предыдущему примеру добавить полосатость очень просто. Добавляется (Element.addClassName из библиотеки Prototype) CSS класс even, который присваивается непарным строкам таблицы. А потом CSS класс selected при выделении применяется ко всем строкам таблицы (tr.selected) и "even" строкам (tr.even.selected), чтобы установить цвет выделения "поверх" цвета полос таблицы.