JSFiddle - React, Tailwind, and code Playground

by Thiago Diniz

HTML

<div class="item">
  <span class="shelf-best-price" itemprop="price">R$ 498,90</span>
  <p class="flag desconto-a-vista-10-">Desconto à vista 5%</p>

  <div class="novo-preco"></div>
</div>

<div class="item">
  <span class="shelf-best-price" itemprop="price">R$ 1.498,90</span>
  <p class="flag desconto-a-vista-10-">Desconto à vista 10%</p>

  <div class="novo-preco"></div>
</div>

JavaScript

document.getElementsByClassName('item')[0].forEach(function(comment) {

  var price = this.getElementsByClassName('shelf-best-price')[0].innerText.replace(/[\D]+/g,'');
  var priceFloat = parseFloat(price);
  var discount = this.querySelectorAll('.flag[class*="desconto-a-vista"]')[0].innerText.replace(/[^0-9]/g, '');
  var subTotal = priceFloat * discount / 100;
  var total = Math.ceil(price - subTotal);


  total = (total + '').replace(/([0-9]{2})$/g, ",$1");
  if (total.length > 6) {
    total = total.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
  }

  document.getElementsByClassName('shelf-best-price')[0].textContent = discount

}