Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод курса валют (https://javascript.ru/forum/misc/72548-vyvod-kursa-valyut.html)

spinastr 11.02.2018 18:02

Спасибо что мне помогаете, это очень ценная информация, но я не вриилансэр.

6 лет сам делаю сайт на юкоз и чему то учусь.

Но: Те кто не знают JS, используют jQuery,
В данной ситуации, кто не умеет строить, открывайте учебник и идите на объект.

что за дом в результате получится?

открыл я это и ... ?

Может через год или два изучения смогу сам вывести стрелку?

Подскажите пожалуйста что делать?

spinastr 11.02.2018 18:41

Посидел почитал, как стрелку вывести почему ошибка? Что там не так и нехватает?

laimas 11.02.2018 19:22

Цитата:

Сообщение от spinastr
Совместить?

Ну я откуда могу значит чего надо? Надо с датой текст, совмещайте, что-то иное, на здоровье. Спрашивалось как вывести дату - через атрибут title. А надо ли ее в горошек раскрасить, это уже не мне решать.

Если по уму, то курсы которые выводятся в боксе сразу должны отображать дату, а не два курса в две строки хрен знает какой за что.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
.ratebox > * {
    display: block;
}

.ratebox .up {
    color: #0f0;
} 

.ratebox .down {
    color: #f00;
}

.ratehead {
    background-color: #0164C6;
    color: #fff;
}
.ratehead .up, .ratehead .down {
    color: #fff;
}
</style>
 
<div class="ratehead">
<span class="current"></span>
</div>

<div class="ratebox">
 <span class="current"></span>
 <span class="previous"></span>
</div>
 
<script>
//именно такое и получит Ajax
var data = {"current":{"date":"11.2.2018","value":58.17,"rate":1},"previous":{"date":"10.2.2018","value":57.67,"rate":1}};
 
//и вот тут данные этого объекта помещаются на свои места
    $(".current,.previous").each(function() {
        var a = $(this), b = this.className, c = a.parent().hasClass('ratebox'); 
        a.html((c ? '<b>'+data[b].date+'</b>' : '') + 
                    " <b>$ " + data[b].value + '</b> <b class=' + ['down','up'][data[b].rate] +'>' + ['▼','▲'][data[b].rate] +'</b>')
                    .attr("title", !c ? data[b].date : "")
    })
</script>

spinastr 11.02.2018 19:32

laimas,
Все запуталось.

Снпчало все работало, был курс. но не было стрелки.

Теперь в 15 строчке прописаны готовые значения.

А курса с jsona там нет.

Все работало, только стрелку вывести оставалось.

Теперь стрелка есть, а курса нет

laimas 11.02.2018 19:34

Цитата:

Сообщение от spinastr
что за дом в результате получится?

Строят себе дома и не строители, я не являясь строителем сам делаю и дизайн который хочу, и плитку ложу, и много еще чего. Если мужика не учили в школе табурет делать, хреново.

Не надо искать оправданий, надо изучать. У каждого здесь есть и работа, и свои заботы, прыгать и скакать вокруг вас длительное время ни кто не станет. Учитесь добывать нужную информацию и изучать ее.

Хрен знает что у вас творится на сайте и почему нет стрелки. Она определяется цифрой 1 или 0, которые у курса находятся в json - "rate":1. Я писал об этом? Писал, сложно это проверить в json что отдает сервер? Если они есть, то и проблем не должно быть ибо они только индексы для выборки из массивов:

['down','up'][data[b].rate] - это добавит класс 'down' или 'up' стрелке, а значит определит ее цвет.
['▼','▲'][data[b].rate] - это определить символ стрелки.

Попробуйте догадаться какая стрелка будет выбрана и имя класса из этих массивов при значении data[b].rate равном 0 и 1.

spinastr 11.02.2018 19:53

То есть у меня на сайте проблема в внутри? Какой то скрипт и не отображается стрелка?

laimas 11.02.2018 20:02

Я не знаю что еще можно рассказывать. Как получаются стрелки и их цвет, рассказано. Они могут не отображаться, если только сервер вернет в json пустые значения у rate. Запрос к серверу показывает, что он отдает все о курсах, включая и динамику курса.

А вот что вы там вытворяете у себя что пропадает то одно, то другое, никто гадать не станет.

spinastr 11.02.2018 20:41

laimas,

ВОТ МОЙ КОД

он работает, только нету стрелки,

<style>
.up {color: #0f0; /*зеленый цвет*/}
.down {color: #f00;}
</style>

<div class="ratehead">
<span class="current"></span>
</div>

<script>
//именно такое и получит Ajax
$.getJSON("домен.ру", function(data) {


//и вот тут данные этого объекта помещаются на свои места 
 $.each(data, function(k, o) {
 $('.'+k).html("$ " + o.value + ' <b class=' + ['down','up'][o.rate] +'>' + ['▼','▲'][o.rate] +'</b>').attr("title", o.date)
 })
});
</script>


<div class="ratehead">
<span class="current"></span>
</div>

j0hnik 11.02.2018 20:43

23 страницы, ну вы блин даете, есть ведь готовые модули

spinastr 11.02.2018 20:46

j0hnik,

Пожалуйста подскажите? Я уже устал


Часовой пояс GMT +3, время: 13:01.