Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   много повторяющихся условий (https://javascript.ru/forum/events/51165-mnogo-povtoryayushhikhsya-uslovijj.html)

Mick_20 27.10.2014 09:53

много повторяющихся условий
 
Здравствуйте!
У меня в скрипте идет 60! одинаковых условий.
Меняются только циферки.

Вот как они выглядят(на примере трех):
if (answ.charAt(0)=="1") {document.getElementById('otvet1').style.backgroundColor = "#afa"; document.getElementById('otvet1').innerHTML = "Верно";} 
	else {document.getElementById('otvet1').style.backgroundColor = "#faa";  document.getElementById('otvet1').innerHTML = "Не верно";};
	if (answ.charAt(1)=="1") {document.getElementById('otvet2').style.backgroundColor = "#afa"; document.getElementById('otvet2').innerHTML = "Верно";} 
	else {document.getElementById('otvet2').style.backgroundColor = "#faa";  document.getElementById('otvet2').innerHTML = "Не верно";};
	if (answ.charAt(2)=="1") {document.getElementById('otvet3').style.backgroundColor = "#afa"; document.getElementById('otvet3').innerHTML = "Верно";} 
	else {document.getElementById('otvet3').style.backgroundColor = "#faa";  document.getElementById('otvet3').innerHTML = "Не верно";};


Как сделать эту проверку одним универсальным условием?

danik.js 27.10.2014 09:58

Цикл for. Видишь у тебя циферки меняются: 0, 1, 2. Вот и меняй их в цикле.

Mick_20 27.10.2014 12:01

Чтот не фурычит((

var z=1;
for(var i=0; i<15; i++) {
			if (answ.charAt([i])=="1") {document.getElementById('otvet[z]').style.backgroundColor = "#afa"; document.getElementById('otvet[z]').innerHTML = "Верно";} 
			else {document.getElementById('otvet[z]').style.backgroundColor = "#faa";  document.getElementById('otvet[z]').innerHTML = "Не верно";};
			z+=1;
}

CiliZ 27.10.2014 12:24

for (var i = 0; i < 15; i++) {
    var element = document.getElementById('otvet' + (i + 1)), chAtEq = answ.charAt([i]) == "1";
    element.style.backgroundColor = chAtEq ? "#afa" : "#faa";
    element.innerHTML = chAtEq ? "Верно" : "Не верно";
}

Mick_20 27.10.2014 12:33

ого)
работает ))

спасибо большое)

danik.js 27.10.2014 15:29

Вместо 15 наверно надо answ.length
Или ответов всегда ровно 15?

kostyanet 28.10.2014 04:24

Этот цикл надо прогнать один раз в начале, увязять данные с интерфейсом и затем только клацать.

Mick_20 28.10.2014 09:41

danik.js, Ответов всегда 15 т к проверка есть что на все вопросы ответили.

kostyanet, Да если б я умел я бы сделал по человечески конечно. Спасибо мб когда-нибудь...

danik.js 28.10.2014 10:24

kostyanet, какие данные?


Часовой пояс GMT +3, время: 08:01.