Вы можете сделать что-то вроде этого:
- скрыть переключатель, поставить стрелку
img
после него, либо скрыть
- определите другой
img
(который заменяет текст) как label
для переключателя
- с помощью псевдоселектора
:checked
и соседнего селекторного элемента (+
) вы можете отобразить стрелку img, когда установлен переключатель
Для этого решения вам не нужен Javascript, только HTML и CSS (и, насколько я помню, IE6 не будет понимать используемые селекторы, поэтому вам придется вернуться к обычному переключателю).
ОБНОВЛЕНИЕ : IE6 <будет обрабатывать <code>+, но только IE8 <будет обрабатывать <code>:checked. Я также создал быстрый тестовый пример, который переключается на переключатели по умолчанию, если свойства не поддерживаются:
<style type="text/css">
ul,li { margin: 0; padding: 0; list-style: none; }
.stuffed_radio:enabled { display: none; }
.stuffed_arrow { display: none; }
.stuffed_radio:enabled+.stuffed_arrow { visibility: hidden; display: inline-block; }
.stuffed_radio:checked+.stuffed_arrow { visibility: visible; }
</style>
<ul>
<li>
<input type="radio" id="radio_1" name="baz" class="stuffed_radio" />
<img src="arrow.png" alt="" class="stuffed_arrow" />
<label for="radio_1"><img src="stuff_1.png" alt="" class="stuffed_image" /></label>
</li>
<li>
...
</li>
</ul>