Показать сообщение отдельно
  #1 (permalink)  
Старый 12.09.2015, 19:23
orb orb вне форума
Новичок на форуме
Отправить личное сообщение для orb Посмотреть профиль Найти все сообщения от orb
 
Регистрация: 12.09.2015
Сообщений: 9

Цикл для функции
Есть Select у которого есть id и с тремя option.
На странице есть <span id="priceraw2">Тут какое-то число</span>

Мне нужно было, чтобы при смене опции менялось значение в этом id="priceraw2", например умножалось. Если стоит опция 1, то значение не меняется, если опция 2, то значение умножается на 20, если значение три, то умножается на 40.

Решил таким образом, все отлично работает.


var default_result=document.getElementById('priceraw2').innerHTML;

(function(){
    var sel=document.getElementById('currency-select');
    my_func(sel);
})()

function my_func(sel){
    var 
        opts=[],
        opt,
        val,
        divider={'1':'1','2':'30','3':'40'},
        result=default_result
    ;
    for(var i=0;i<sel.options.length;i++){
        opt=sel.options[i];
        if(opt.selected){
            val=opt.value;
            opts.push(val);
            val=divider[val];
        }
    }
    if(opts.length==0){
        result=default_result;
    }else{
        result=default_result*val;
        result = Math.round(result);
    }
    document.getElementById('priceraw2').innerHTML=result;
}


Но как сделать, чтобы этот скрипт выполнялся везде и для всех?
Например, на странице может быть 20 или 1000 блоков в которых есть <span id="priceraw2">Тут какое-то число</span>, но функция выполняется только для первого блока.

На странице может быть еще всплывающее окно с <span id="priceraw2">Тут какое-то число</span>, как сделать, чтобы скрипт выполнялся для каждого блока и везде?
Ответить с цитированием