Quiero obtener datos de la API y mostrarlos en HTML por elementID con JavaScript. Por favor, ayuda con lo que me equivoco en este código a continuación.
<div id="priceChange"></div> <script> setInterval(tradestime, 5000); function tradestime(){ fetch("https://api.binance.com/api/v1/ticker/24hr?symbol=LTCUSDT") .then( (res) => { const data = res.json(); } ) document.getElementById("priceChange").innerHTML = data.PriceChange; } </script>Corrija este código.
Debe usar res.json() porque desea datos en formato JSON . que devolverá la promise y luego podrá obtener data . Deberías leer fetch docs
fetch("https://api.binance.com/api/v1/ticker/24hr?symbol=LTCUSDT") .then(res => res.json()) .then(data => el.innerHTML = data.priceChange) la clave debe ser priceChange no PriceChange .
Puede usar parseFloat + toFixed como:
el.innerHTML = Number.parseFloat(data.priceChange).toFixed(2); setInterval(tradestime, 5000); const el = document.getElementById("priceChange"); function tradestime() { fetch("https://api.binance.com/api/v1/ticker/24hr?symbol=LTCUSDT") .then(res => res.json()) .then(data => el.innerHTML = data.priceChange) } <div id="priceChange"></div> También puede usar async-await aquí
setInterval( tradestime, 5000 ); const el = document.getElementById( "priceChange" ); async function tradestime() { const res = await fetch( "https://api.binance.com/api/v1/ticker/24hr?symbol=LTCUSDT" ) const data = await res.json(); el.innerHTML = data.priceChange; } <div id="priceChange"></div>