Мне кажется, что вместо добавления / изменения изображений вы должны просто использовать фоновые изображения в css . Затем вы можете легко изменить фоновое изображение в зависимости от состояния ссылки (наведение, текущая и т. Д.), И изменение его позже не потребует каких-либо манипуляций на JavaScript или на стороне сервера с вашей разметкой.
Еще лучше, используйте CSS-спрайты !
ОБНОВЛЕНИЕ:
вот пример (без CSS-спрайтов):
http://jsfiddle.net/tsimbalar/JBcqB/
Идея состоит в том, чтобы добавить специальный класс CSS для ссылок, имеющих суб-навигацию, и выполнить все стили в CSS на основе этого класса.
ОБНОВЛЕНИЕ 2
и здесь с использованием CSS-спрайтов (в этом случае значки из jQuery UI). В этом случае мы просто «меняем» положение фона на :hover
, открывая еще один значок.
http://jsfiddle.net/tsimbalar/gw686/
нам действительно нужно немного javascript , чтобы условно проверить, имеет ли ссылка субнавигатор или нет.
ОБНОВЛЕНИЕ 3 + 4
Кажется, он не работает должным образом с IE (удивительно ...), но я думаю, что это потому, что вы используете HTML5-теги, такие как nav
, которые не могут быть стилизованы в IE без предварительного небольшого взлома (см. эта статья ). Замена nav
на div
работает нормально, даже с IE, даже если у ссылок уже был фон.
См. http://jsfiddle.net/tsimbalar/gw686/embedded/result/