Преобразование JSON из Binance Rest API в HTML

#javascript #json #api #rest #binance

#javascript #json #API #rest #binance

Вопрос:

Я создал 2 файла .js со скриптами внутри них, которые затем вызываются app.html

Я пытаюсь вызвать как спотовую цену, так и процентное изменение за 24 часа из Binance rest API. Моя проблема в том, что он выводит процентное изменение в HTML-элементе spot pricing. Я думаю, это как-то связано с тем, что идентификатор процентного символа совпадает с идентификатором символа спотовой цены, но я не уверен.

Что я сделал не так?

Вот документы финансового rest API.

HTML

 <div class="div-block-3">
  <div class="text-block-2"><span class="currency-title">USD</span> <span class="currency-symbol">$</span><strong id="BTCUSDT" class="rates">11,794.00</strong></div>
  <div id="BTCUSDT" class="text-block-6"><strong class="negative">-1.84%</strong></div>
</div>
  

процент изменения за 24 часа .js

 function load() {
    var url_base = "https://api.binance.com/api/v3/ticker/24hr?symbol="
    var elements = document.getElementsByClassName('text-block-6');
    
    for (var i = 0; i < elements.length; i  ) {
        var id  = elements[i].id;
        var url = url_base   id;
        var ourRequest = new XMLHttpRequest();
        ourRequest.open('GET', url, true);

        ourRequest.onload = function () {
            console.log(this.responseText);

            var obj = JSON.parse(this.responseText);
            document.getElementById( obj.symbol ).innerHTML = obj.priceChangePercent;
        };
        ourRequest.send();
    }
}

window.onload = load;
  

спотовые цены .js

 function load() {
    var url_base = "https://api.binance.com/api/v3/ticker/price?symbol="
    var elements = document.getElementsByClassName('rates');
    for (var i = 0; i < elements.length; i  ) {

        var id  = elements[i].id;
        var url = url_base   id;
        var ourRequest = new XMLHttpRequest();
        ourRequest.open('GET', url, true);

        ourRequest.onload = function () {
            console.log(this.responseText);

            var obj = JSON.parse(this.responseText);
            document.getElementById( obj.symbol ).innerHTML = obj.price;
        };
        ourRequest.send();
    }
}
window.onload = load;
  

Комментарии:

1. В обоих случаях вы задаете один и тот же элемент вашего документа document.getElementById( obj.symbol ).innerHTML = obj.priceChangePercent; . Вам нужен другой способ различать два элемента, а не по id .