Как удалить 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 ответа:
Для достижения этой цели можно выполнить цикл над элементами
.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>