Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

112
Visualizações
Reemplazar texto en elementos con la misma clase

Tengo algunos productos en una página.

 <p class="wt-text-title-01"> <span class="wt-screen-reader-only"> Sale Price USD 5 </span> <span aria-hidden="true"> <span class="currency-symbol">USD </span><span class="currency-value">5</span> </span> </p>

Tengo un total de 36 productos con diferentes precios. Quiero revisar cada producto y convertir la moneda con el símbolo de moneda que tengo y también multiplicar el valor en USD con el tipo de cambio de la moneda detectada.

tengo este codigo

 var request = new XMLHttpRequest(); let exchange_rate = 1; request.open('GET', 'https://api.ipdata.co/?api-key=apikey'); request.setRequestHeader('Accept', 'application/json'); const http = new XMLHttpRequest(); request.onreadystatechange = function () { if (this.readyState === 4) { console.log(this.responseText); let data = JSON.parse(this.responseText); let currency = data.currency.code; if (currency == 'USD') { exchange_rate = 1; } if (currency == 'EUR') { exchange_rate = 1.28; } if (currency == 'GBP') { exchange_rate = 0.73; } if (currency == 'CAD') { exchange_rate = 0.78740; }; $('.currency-symbol').text(currency); let v = $('.currency-value').val(); $('.currency-value').each(function (i, obj) { let cv = parseInt($('.currency-value').text()) * exchange_rate; $('.currency-value').text(' ' + cv); }); } }; request.send();

Puedo cambiar el símbolo de moneda para los 36 productos, pero la conversión de moneda parece no funcionar. Dado que cada clase tiene un valor diferente, ¿cómo puedo establecer la cantidad de moneda convertida correcta para cada producto?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Cuando realice un bucle en los valores de moneda en lugar de volver a llamar al selector, use obj como:

 $('.currency-value').each(function (i, obj) { let cv = parseInt($(obj).text()) * exchange_rate; $(obj).text(' ' + cv); });
about 4 years ago · Juan Pablo Isaza Relatório

0

La forma más sencilla de lograr lo que necesita es crear un objeto que contenga los tipos de cambio, codificados por el código de moneda. Luego, simplemente puede recuperar ese valor según el code en la respuesta de la API y realizar el cálculo del tipo de cambio.

También tenga en cuenta el uso de text() en lugar de val() en el siguiente ejemplo, ya que los elementos div no tienen una propiedad de value .

Finalmente, y lo más importante, dados los valores de cambio que está utilizando, debe dividir por ese tipo de cambio en su cálculo.

Con todo lo dicho, prueba esto:

 // note updated to be more accurate based on todays prices let exchangeRates = { 'USD': 1, 'EUR': 1.17, 'GBP': 1.37, 'CAD': 0.7874 } // mock response from AJAX call. Irrelevant properties removed. let responseText = { "currency": { "name": "Euro", "code": "EUR", "symbol": "€", "native": "€", "plural": "Euros" } } // inside your XMLHttpRequest onreadystatechange handler: $('.currency-symbol').text(responseText.currency.symbol); $('.currency-value').text((i, t) => (t / exchangeRates[responseText.currency.code]).toFixed(2));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <p class="wt-text-title-01"> <span class="wt-screen-reader-only">Sale Price USD 5</span> <span aria-hidden="true"> <span class="currency-symbol">USD</span> <span class="currency-value">5</span> </span> </p> <p class="wt-text-title-01"> <span class="wt-screen-reader-only">Sale Price USD 10</span> <span aria-hidden="true"> <span class="currency-symbol">USD</span> <span class="currency-value">10</span> </span> </p> <p class="wt-text-title-01"> <span class="wt-screen-reader-only">Sale Price USD 15.99</span> <span aria-hidden="true"> <span class="currency-symbol">USD</span> <span class="currency-value">15.99</span> </span> </p>

about 4 years ago · Juan Pablo Isaza Relatório

0

No estoy tan familiarizado con jQuery y todo eso, pero ¿no deberías hacer algo como esto?

 obj.textContent = ' ' + cv;

en lugar de esto:

 $('.currency-value').text(' ' + cv);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda