Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2011, 22:53
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

С какой стороны взяться?
Есть небольшая таблица (6х5) с ценами в гривнях. Необходима возможность выбирать валюту (например через флажки над таблицей) для того, чтобы цены отображались в разных валютах, например для рублей и долларов.
Помогите с логикой, или возможно подскажите как проще будет сделать? Благодарен за любые советы или рекомендации
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2011, 10:16
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Проблема решена, кому интересно вот код:
Присваиваем таблице id=main_price и для тех ячеек таблицы, данные в которых необходимо конвертировать присваиваем id="ToConvert" (<td id="ToConvert">100</td>)
Текущая валюта(Валюта по умолчанию):
<div id="IndocatorCur" style="background: url(flags/ua.jpg) no-repeat;">UAH</div>
<div id="CurRUR" style="visibility: hidden;">0.27</div> <!--Курс рубля-->
<div id="CurEUR" style="visibility: hidden;">10</div> <!--Курс евро-->
<div id="CurUSD" style="visibility: hidden;">7.97</div> <!--Курс доллара-->
Выбрать валюту:
<div onclick="convert('RUR');" style="background: url(flags/ru.jpg;) no-repeat;">Руб.</div>
<div onclick="convert('UAH');" style="background: url(flags/ua.jpg;) no-repeat;">Грн.</div>
<div onclick="convert('USD');" style="background: url(flags/en.jpg;) no-repeat;">Дол.</div>
<div onclick="convert('EUR');" style="background: url(flags/eu.jpg;) no-repeat;">Евро</div>

function convert(val){
    var TablePrice = document.getElementById("main_price");
    var trList = TablePrice.getElementsByTagName("tr");
    var IdVal = document.getElementById("IndocatorCurHide");
    var IdCur = document.getElementById("IndocatorCur");
    
    var CurUSD = parseFloat(document.getElementById("CurUSD").innerHTML);
    var CurRUR = parseFloat(document.getElementById("CurRUR").innerHTML);
    var CurEUR = parseFloat(document.getElementById("CurEUR").innerHTML);
    
    var Kurce = 1;
    var KurceUAH = 1;
    
    switch (val) {
        case "RUR":
            IdCur.style.backgroundImage = "url('flags/FlagsRussia.jpg')";
            break;
        case "EUR":
            IdCur.style.backgroundImage = "url('flags/FlagsEU.jpg')";
            break;
        case "USD":
            IdCur.style.backgroundImage = "url('flags/FlagsUSA.jpg')";
            break;
        case "UAH":
            IdCur.style.backgroundImage = "url('flags/FlagsUkraine.jpg')";
            break;
    }
    
    for (var i = 0; i < trList.length; i++) {
        var tdList = trList[i].getElementsByTagName('td');
        for (j = 0; j < tdList.length; j++) {
            if (tdList[j].id == "ToConvert") {
                if ((tdList[j].innerHTML != "") && (tdList[j].innerHTML != "-")) {
                    var TmpPrice = parseFloat(tdList[j].innerHTML);
                    switch (IdVal.innerHTML) {
                        case "RUR":
                            switch (val) {
                                case "UAH":
	
                                    TmpPrice *= CurRUR;
                                    break;
                                case "EUR":
                                    TmpPrice *= CurRUR;
                                    TmpPrice /= CurEUR;
                                    break;
                                case "USD":
                                    TmpPrice *= CurRUR;
                                    TmpPrice /= CurUSD;
                                    break;
                            }
                            ;                            break;
                        case "USD":
                            switch (val) {
                                case "UAH":
                                    TmpPrice *= CurUSD;
                                    break;
                                case "EUR":
                                    TmpPrice *= CurUSD;
                                    TmpPrice /= CurEUR;
                                    break;
                                case "RUR":
                                    TmpPrice *= CurUSD;
                                    TmpPrice /= CurRUR;
                                    break;
                            }
                            ;                            break;
                            
                        case "EUR":
                            switch (val) {
                                case "UAH":
                                    TmpPrice *= CurEUR;
                                    break;
                                case "RUR":
                                    TmpPrice *=  CurEUR;
                                    TmpPrice /=  CurRUR;
                                    break;
                                case "USD":
                                    TmpPrice *= CurEUR;
                                    TmpPrice /= CurUSD;
                                    break;
                            }
                            ;                            break;
                            
                        case "UAH":
                            switch (val) {
                                case "RUR":
                                    TmpPrice /= CurRUR;
                                    break;
                                case "EUR":
                                    TmpPrice /= CurEUR;
                                    break;
                                case "USD":
                                    TmpPrice /= CurUSD;
                                    break;
                            }
                            ;                            break;
                    }
                    tdList[j].innerHTML = TmpPrice.toFixed(2);//Math.round(TmpPrice / 0.1) * 0.1;
                    
              
                }
            }
        }
    }
    IdVal.innerHTML = val;
    IdCur.innerHTML = val;
                    
}

Последний раз редактировалось bayrach, 06.03.2011 в 13:30.
Ответить с цитированием
  #3 (permalink)  
Старый 04.03.2011, 10:24
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Какой милый говнокод. Можно было бы сделать лучше:

var Values = {
	"RUR-EUR" : 0.03,
	"EUR-RUR" : 33 // и т. д.
};

...

tdList[j].innerHTML = Values[IdVal.innerHTML + "-" + val];


Против ничего не имею, просто на заметку.
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2011, 13:31
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Спасибо, я же сказал буду рад любым предложениям, переделаем
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по jquery - как узнать какой тэг? APL Общие вопросы Javascript 7 09.06.2016 15:22
Какой хостинг лучше взять Hetengected Оффтопик 12 18.11.2010 14:30
какой по счёту li vanderv jQuery 15 14.11.2010 21:26
какой код клавиши у кнопки cmd у apple demi Events/DOM/Window 2 25.02.2010 11:32
Как узнать на какой ссылке кликнули Rush_e jQuery 1 02.11.2009 20:08