У меня, скажем, десять больших пальцев лошадей. И каждый раз, когда нажимают одну лошадь, я бы хотел, чтобы ее фон стал серым. И то же самое, когда нажимают на другую лошадь, я бы хотел, чтобы цвет фона этой лошади стал серым, а все остальные фоны стали белыми.
Если я сделаю это так
function changeBackHorse(id) {
for (var i = 0; i < 25; i++) {
if (id == i) {
document.getElementById("horseThumb_" + id)
.style.backgroundColor = '#888';
}
}
}
Фон кликаемой лошади меняется. Все, что мне нужно сделать сейчас, это добавить оператор else, чтобы, когда идентификатор не совпадал, фоны стали белыми.
Так что я подумал, что это сработает, и понятия не имею, почему это не так. Ничего не происходит, хотя переданный идентификатор правильный. (проверено с предупреждением (id)).
<span id="horseThumb_<%= horse_thumb.id %>"
onclick="changeBackHorse('<%= horse_thumb.id %>');">
<%= image ... %>
</span>
сценарий:
function changeBackHorse(id) {
for (var i = 0; i < 25 ; i++) {
var el = document.getElementById("horseThumb_" + i);
if (id == i){
el.style.backgroundColor = '#888';
} else {
el.style.backgroundColor = '#fff';
}
}
}
Я не знаю, что я здесь делаю неправильно. Я пытался изменить его различными способами, но не могу понять, почему он не работает. Так что любые ответы будут очень признательны!