Jquery не фильтрует код?
Стоит задача получить значение из двух мест на странице, значения к примеру 5 и 1 000 ₽ перемножить, получить сумму к примеру 5000, добавить пробел и ₽, что бы получилось 5 000 ₽ и заменить первоначальную цену. Вот где умножение и добавление пробела после первого символа, все ломается. Как поправить?
// find elements
$(document).on('click', '.col-minus', function() {
var colsh = $('.popup2').find("input[name='quantity']").val();
colsh = (colsh.replace(/[^0-9]/gim, ''));
var cost = $('.popup2').find('.getc').find('.woocommerce-Price-amount').text();
var filtr = (cost.replace(/[^0-9]/gim, ''));
var zam = filtr * colsh;
zam = (zam.replace(/(.)(?=(\d{3})+$)/g, '$1 '));
$('.popup2').find('.getc').find('.woocommerce-Price-amount').html(zam + ' ₽');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="popup2">
<div class="woocommerce-variation-price getc">
<span class="price"><span class="woocommerce-Price-amount amount"><bdi>1 000
<span class="woocommerce-Price-currencySymbol"> ₽</span></bdi>
</span>
</span>
</div>
<div class="quantity">
<span class="col-minus">-</span>
<input type="number" id="quantity_5fe8e57d9cd26" class="input-text qty text" step="1" min="1" max="" name="quantity" value="1" title="Кол-во" size="4" placeholder="" inputmode="numeric">
<span class="col-plus">+</span>
</div>
</div>
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
У вас умножение даёт число, но вы используете с ним метод строки .replace(). Попробуйте так:
var zam = String(filtr * colsh);