Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2011, 17:56
Интересующийся
Отправить личное сообщение для Diego Посмотреть профиль Найти все сообщения от Diego
 
Регистрация: 06.02.2011
Сообщений: 24

Помогите сократить код
Была цель - написать скрипт под 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 почти одинаковых строк кодом по меньше? Сам еще новичек, многого не знаю
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2011, 17:58
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Циклы же.
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2011, 19:13
Интересующийся
Отправить личное сообщение для Diego Посмотреть профиль Найти все сообщения от Diego
 
Регистрация: 06.02.2011
Сообщений: 24

Спасибо, попробовал... кое что получилось, но с проблемами:
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 ищу на разных сайтах, в том числе и тут, но нигде не написано о... грубо говоря "пристыковке", в общем вы поняли. Можете указать на ошибку? В любом случае спасибо за помощь.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2011, 19:35
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Diego
num'i'
Что за бред? Есть же массивы.
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2011, 20:01
Интересующийся
Отправить личное сообщение для Diego Посмотреть профиль Найти все сообщения от Diego
 
Регистрация: 06.02.2011
Сообщений: 24

Хм... теперь всё ясно. Еще раз спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающие списки. Помогите подправить код. cardsmoney Элементы интерфейса 6 18.02.2011 16:20
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Помогите код оптимизировать. Suharik Events/DOM/Window 2 27.05.2010 11:59
Прелоэдер. Помогите разобрать код. bayah Общие вопросы Javascript 1 05.05.2010 20:32
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52