Помогите сократить код
Была цель - написать скрипт под uCoz. В общем не буду вдаваться в подробности - главное что работает. Но проблема в другом. Он относительно большой:
var div = document.getElementsByClassName('answer') var num1 = parseFloat(div[0].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num2 = parseFloat(div[1].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num3 = parseFloat(div[2].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num4 = parseFloat(div[3].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num5 = parseFloat(div[4].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num6 = parseFloat(div[5].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num7 = parseFloat(div[6].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num8 = parseFloat(div[7].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num9 = parseFloat(div[8].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var num10 = parseFloat(div[9].getElementsByTagName('span')[0].getAttribute('title').substr(9)) var mark1 = parseFloat(div[0].getElementsByTagName('span')[0].innerHTML) var mark2 = parseFloat(div[1].getElementsByTagName('span')[0].innerHTML) var mark3 = parseFloat(div[2].getElementsByTagName('span')[0].innerHTML) var mark4 = parseFloat(div[3].getElementsByTagName('span')[0].innerHTML) var mark5 = parseFloat(div[4].getElementsByTagName('span')[0].innerHTML) var mark6 = parseFloat(div[5].getElementsByTagName('span')[0].innerHTML) var mark7 = parseFloat(div[6].getElementsByTagName('span')[0].innerHTML) var mark8 = parseFloat(div[7].getElementsByTagName('span')[0].innerHTML) var mark9 = parseFloat(div[8].getElementsByTagName('span')[0].innerHTML) var mark10 = parseFloat(div[9].getElementsByTagName('span')[0].innerHTML) var v = parseFloat(document.getElementById('v').innerHTML) var nv = v/10 alert(Math.ceil(((mark1*num1)+(mark2*num2)+(mark3*num3)+(mark4*num4)+(mark5*num5)+(mark6*num6)+(mark7*num7)+(mark8*num8)+(mark9*num9)+(mark10*num10))/nv)/10) Вопрос вот в чем: как заменить 20 почти одинаковых строк кодом по меньше? Сам еще новичек, многого не знаю :) |
Циклы же.
|
Спасибо, попробовал... кое что получилось, но с проблемами:
div = document.getElementsByClassName('answer') for (var i = 0; i < 10; i++) { alert(parseFloat(div[i].getElementsByTagName('span')[0].getAttribute('title').substr(9))) } так работает, но присвоить отдельно каждое выражение отдельной переменной не получается: div = document.getElementsByClassName('answer') for (var i = 0; i < 10; i++) { num'i' = parseFloat(div[i].getElementsByTagName('span')[0].getAttribute('title').substr(9)) } alert(num1) уже минут 20 ищу на разных сайтах, в том числе и тут, но нигде не написано о... грубо говоря "пристыковке", в общем вы поняли. Можете указать на ошибку? В любом случае спасибо за помощь. |
Цитата:
|
Хм... теперь всё ясно. Еще раз спасибо!
|
Часовой пояс GMT +3, время: 23:34. |