Вы не можете стилизовать псевдокласс на отдельном элементе, так же, как вы не можете иметь псевдокласс в атрибуте inline style = "..." (так как нет селектора) .
Вы можете сделать это, изменив таблицу стилей, например, добавив правило:
#elid:hover { background: red; }
при условии, что каждый элемент, на который вы хотите воздействовать, имеет уникальный идентификатор, позволяющий выбрать его.
Теоретически документ, который вам нужен, это http://www.w3.org/TR/DOM-Level-2-Style/Overview.html, что означает, что вы можете (с учетом уже существующей встроенной или связанной таблицы стилей) использовать следующий синтаксис:
document.styleSheets[0].insertRule('#elid:hover { background-color: red; }', 0);
document.styleSheets[0].cssRules[0].style.backgroundColor= 'red';
IE, конечно, требует свой собственный синтаксис:
document.styleSheets[0].addRule('#elid:hover', 'background-color: red', 0);
document.styleSheets[0].rules[0].style.backgroundColor= 'red';
Старые и второстепенные браузеры, скорее всего, не поддерживают ни один из синтаксисов. Динамическое переключение таблиц стилей выполняется редко, потому что это довольно раздражает, когда нужно правильно, редко нужно и исторически хлопотно.