Как удалить 25% от числового значения span с помощью jQuery?


Я хочу удалить 25% из цены, а затем показать сумму в новом промежутке. Что-то вроде этого:

price * 0.8 = newPrice //edited

Это мой промежуток:

<span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">21.188</span>
Вот к чему я пришел до сих пор...
$(".purchase-block-price" ).each(function() {

    // Show price ex vat
    var price = parseInt($(".price").text().trim().replace(".",""));
    var newprice = price * 0.8;

    $(newprice).appendTo(".purchase-block-price");
});

Возможно ли это вообще?

4   2  

4 ответа:

Для достижения этой цели можно выполнить цикл над элементами .price, Взять из них значение text() и преобразовать его в число с плавающей запятой с помощью parseFloat(). Оттуда вы можете вычислить значение минус 20% и вставить новый span, содержащий значение. Попробуйте это:

$(".purchase-block-price .price").each(function() {
  var price = parseFloat($(this).text().trim());
  var newprice = price * 0.75;
  $('<span class="newprice">' + newprice + '</span>').insertAfter(this);
});
.price {
  margin-top: 10px;
  display: block;
}

.newprice {
  color: red;
  display: block;
  font-size: 1.2em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="purchase-block-price">
  <span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">21.188</span>
</div>
<div class="purchase-block-price">
  <span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">132.299</span>
</div>
Обратите внимание, что при необходимости можно использовать метод .toFixed(2) для округления вычисленных значений цены.

Конечно, получите значение (в данном случае с text()) и умножьте на 0.75.

var value = parseFloat( $("#ctl00_main_ctl00_ctl00_labPrice").text() );
var newValue = value * 0.75;
console.log( newValue );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">21.188</span>

Попробуйте :

var oldprice = $('#ctl00_main_ctl00_ctl00_labPrice').text();
var newprice = oldprice - (oldprice * 0.20);
console.log(newprice); /* Do whatever you want with your new price*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">21.188</span>

Использование .text( function ) к замене текущего значения span на новое значение.

$("#ctl00_main_ctl00_ctl00_labPrice").text(function(i, text){
  return text - (text * 0.25); // or text * 0.75
});

$("#ctl00_main_ctl00_ctl00_labPrice").text(function(i, text){
  return text * 0.75;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="ctl00_main_ctl00_ctl00_labPrice" class="price" itemprop="price">21.188</span>