[ Foro de Javascript ]

Problema para imprimir valores desde el APi

30-May-2022 18:50
Invitado (Juan Pablo Grover Pinto)
0 Respuestas

Hola Chicos estoy armando algo con API y con Javascript, es un convertidor de peso chilenos a dolar, euro, peso argentino y peso mexicano.

pero me sale undefined me pueden dar una mano


let valor, vd, ve, va , vm;
changeMoney();
const date = document.querySelector("#fecha"); //fecha.
const dividendo = document.querySelector("#div");


// fecha
const today =  luxon.DateTime;
date.innerHTML = `<b> ${today.now().toLocaleString()} </b>`;
 


function changeMoney(){
  fetch("https://api.apilayer.com/exchangerates_data/latest?base=CLP&symbols=USD,EUR,ARS,MXN", requestOptions)
  .then(response => response.text())
    .then(result =>{
      valor = JSON.parse(result);
      vd = 1/valor.rates.USD;
      ve = 1/ valor.rates.EUR;
      va = 1/valor.rates.ARS;
      vm = 1 / valor.rates.MXN;
    })
    .catch(error => console.log('error', error));
}

  dividendo.innerHTML=`<h4>Dolar</h4><br>
  <p>Un dolar en peso Chileno es:${vd}</p><br>
  <h4>Euro</h4><br>
  <p>Un Euro en peso Chileno es:${ve}</p><br> 
  <h4>Peso Argentino</h4><br>
  <p>Un Peso Argentino en peso Chilero es:${va}</p>
  <br><h4>Peso Mexicano</h4><br>
  <p>Un Peso Mexicano en peso Chilero es:${vm}</p><br>`;

Me trae los datos del api por que cuando hago una consulta desde consola del firefox o chrome me devuelve valor pero cuando lo inserto al HTML me dice que es undefined, si alguien puede darme una mano Gracias 



el HTML seria este 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- Bootstrap -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css">
  <!-- CSS -->
  <link href="CSS/main.css" rel="stylesheet">
  <script src="https://kit.fontawesome.com/30c4998bca.js" crossorigin="anonymous"></script>
</head>
<body>
  
  <!-- Menu -->
  <nav class="navbar navbar-expand-lg navbar-light menu ">
    <div class="container">      
      <a class="navbar-brand" href="index.html"><img src="imagen/favicon.png"
        alt="logo Convertidor" class="img-fluid logo" width="100%" height="100%" /></a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
        aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
          <li class="nav-item">
            <a class="nav-link" style="color:#57DFB7" aria-current="page" href="index.html">Inicio</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" style="color:white;" href="espacio/quienes_somos.html">Quienes Somos</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" style="color:white;"" href="espacio/convertidor.html"> Convertidor</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" style="color:white;"href="espacio/simulador.html">Simulador</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" style="color:white;" href="espacio/contacto.html">Contacto</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>
  <div class="container text-end fecha " id="fecha">
  </div>
  <!-- Carrusel -->
  <div class="row container-fluid">
    <div class="col-sm-12 col-md-6 col-lg-4">
      <h3>Divisas que podemos hacer el cambio</h3><br>
      <div id = "div">

      </div>
    </div>
    <div class="col-sm-12 col-md-6 col-lg-8">
      <div id="carouselExampleControls" class="carousel slide " data-bs-ride="carousel">
        <div class="carousel-inner">
          <div class="carousel-item active">
            <img src="imagen/money.jpeg" class="img-fluid carrusel" alt="Social Networks">
          </div>
          <div class="carousel-item">
            <img src="imagen/money2.jpeg" class="img-fluid carrusel " alt="...">
          </div>
          <div class="carousel-item">
            <img src="imagen/money3.jpeg" class="img-fluid carrusel" alt="...">
          </div>
        </div>
        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls"
          data-bs-slide="prev">
          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
          <span class="visually-hidden">Previous</span>
        </button>
        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls"
          data-bs-slide="next">
          <span class="carousel-control-next-icon" aria-hidden="true"></span>
          <span class="visually-hidden">Next</span>
        </button>
      </div>
    </div>
  </div>

  <!-- footer -->
  <footer class="text-center" >
    <span >Convertidor Inveriones Go SpA </span>
  </footer>

  <!-- JS -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
    crossorigin="anonymous"></script>
  
    <script src="https://cdn.jsdelivr.net/npm/luxon@2.4.0/build/global/luxon.min.js"></script>"
  <script src="JS/other.js"></script>
</body>
</html>




si se dan cuenta hay un div con un id ="div "donde imprimo los valores vd, ve , va ,vm.




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...