Javascript.RU

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

Как совместить скрипт валютного курса евро и доллара
Здравствуйте, нашёл один скрипт из интернета (кривой CSS сам добавил), хороший (курс с ЦБ, думаю многим понравится). Естественно доллар и евро в курсах одна сапога пара, но никак не получается их вместе совместить. Совместить так, чтобы были в одном блоке (как на скрине к примеру, евро под долларом)
Использовал BlueFish
Доллар
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
   <link rel="stylesheet" href="sjfike.css">
</head>
<body>
<div id="usd"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
<script>
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
var Value = data.Valute.USD.Value
var Previous = data.Valute.USD.Previous
function trend(Value, Previous) {
if (Value > Previous) return '<b style="color:#00ff00;"> в–І</b>';
if (Value < Previous) return '<b style="color:#ff0000;"> в–ј</b>';
return '';
}
var trend = trend(data.Valute.USD.Value, data.Valute.USD.Previous);
 $('#usd').html("USD ЦБ&nbsp;&nbsp;" +data.Valute.USD.Value.toFixed(1) +trend);
});
</script>
 
</body>
</html>

Евро
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
   <link rel="stylesheet" href="sjfike.css">
</head>
<body>
<div id="eur"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
<script>
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
var Value = data.Valute.EUR.Value
var Previous = data.Valute.EUR.Previous
function trend(Value, Previous) {
if (Value > Previous) return '<b style="color:#00ff00;"> в–І</b>';
if (Value < Previous) return '<b style="color:#ff0000;"> в–ј</b>';
return '';
}
var trend = trend(data.Valute.USD.Value, data.Valute.EUR.Previous);
 $('#eur').html("EUR ЦБ&nbsp;&nbsp;" +data.Valute.EUR.Value.toFixed(1) +trend);
});
</script>
</body>
</html>

CSS -
#eur {
background-color: orange;
height: 100px;
width: 120px;
margin-left:100px;
}
Изображения:
Тип файла: jpg bandicam 2019-03-18 20-31-09-834.jpg (11.8 Кб, 1 просмотров)

Последний раз редактировалось Ryuantu, 19.03.2019 в 01:35.
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2019, 22:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Ryuantu
никак не получается их вместе совместить
Не делайте два раздельных запроса к ЦБ, в одном возвращаются все курсы. Извлекайте из ответа нужные и выводите.
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2019, 22:40
Новичок на форуме
Отправить личное сообщение для Ryuantu Посмотреть профиль Найти все сообщения от Ryuantu
 
Регистрация: 18.03.2019
Сообщений: 2

Сообщение от laimas Посмотреть сообщение
Не делайте два раздельных запроса к ЦБ, в одном возвращаются все курсы. Извлекайте из ответа нужные и выводите.
Примерно я догадывался, что напишите вы)
https://www.cbr-xml-daily.ru/daily_json.js - это я полагаю запрос?
Ёжики давно уже смеются)
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2019, 22:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вот запрос

$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
а тут обработка его ответа, вот тут и выводите не только data.Valute.EUR, но и любую иную валюту
})


А что возвращается в data запросом по URL https://www.cbr-xml-daily.ru/daily_json.js можно посмотреть в консоли отладчика.
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2019, 12:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,706

Попробуйте так:
$.getJSON("https://www.cbr-xml-daily.ru/daily_json.js", function(data) {
    const currencies = ['USD', 'EUR'];

    const courses = currencies.reduce((result, currencyName) => {
        const currencyData = data.Valute[currency];

        const isIncrease = currencyData.Value >= currencyData.Previous;
        const html = `<b style="color:#${isIncrease?'00ff00':'ff0000'};"> в–${isIncrease?'I':'J'}</b>`;

        result[currencyName.toLowerCase()] =
            `${currencyName} ЦБ&nbsp;&nbsp;${currencyData.Value.toFixed(1)}${html}`;


        return result;
    }, {});


    Object.keys(courses).forEach(containerId => {
        $('#' + containerId).html(courses[containerId]);
    });
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт некорректно работает. Как можно исправить? antonhauff Javascript под браузер 11 16.01.2018 14:28
Как заставить скрипт обновить свои знания о dom? l-liava-l Оффтопик 6 21.02.2013 16:21
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40