JSFiddle - React, Tailwind, and code Playground
by AJIEKCEU
HTML
<form class="cart_form">
<table class="cart_form_table">
<thead>
<tr>
<th>Название</th>
<th></th>
<th>Количество</th>
<th>Цена(шт.)</th>
<th>цена общая</th>
<th>скидка</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="images/img6.png" alt=""/></td>
<td>Бассейн для дачи intex 33</td>
<td>
<div class="wrp_col_prod">
<i class="minus">-</i>
<input type="text" class="it" value="2"/>
<i class="plus">+</i>
</div>
</td>
<td>
<span class="cart_price_prod"><i>2 900 000</i> р.</span>
</td>
<td>
<span class="cart_total_price"><i>5 400 00</i> р.</span>
</td>
<td>
<span class="discount"><i>10</i>%</span>
</td>
<td>
<a href="#" class="cart_del_prod"></a>
</td>
</tr>
<tr>
<td><img src="images/img2.png" alt=""/></td>
<td>Мультиварка MC-234</td>
<td>
<div class="wrp_col_prod">
<i class="minus">-</i>
<input type="text" class="it" value="2"/>
<i class="plus">+</i>
</div>
</td>
<td>
<span class="cart_price_prod"><i>2 700 000</i> р.</span>
</td>
<td>
<span class="cart_total_price"><i>5 400 000</i> р.</span>
</td>
<td>
<span class="discount"><i>10</i>%</span>
</td>
<td>
<a href="#" class="cart_del_prod"></a>
</td>
</tr>
<tr>
<td><img src="images/img10.png" alt=""/></td>
<td>Бассейн для дачи intex 33</td>
<td>
<div class="wrp_col_prod">
<i class="minus">-</i>
<input type="text" class="it" value="2"/>
<i class="plus">+</i>
</div>
</td>
<td>
<span class="cart_price_prod"><i>2 700 000</i>...
CSS
@charset "utf-8";article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{cnt:none}hr{border:0;border-top:1px solid #e8e8e8;display:block;margin:0 0 18px;padding:0;clear:both;display:block}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}input[type=text]:focus{outline:0}input::-ms-clear{display:none}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}a...
JavaScript
$(function() {
var form = $('.cart_form'),
totalPrices = form.find('.cart_total_price i'),
totalSelector = form.find('.total span'),
totalDiscount = form.find('.discount_price span')
discountSelector = '.discount i';
//увеличивание значения value на 1
$(".plus").click(function() {
var data = $(this).prev().val();
if (data >= 0) {
$(this).prev().val(parseInt(data) + 1);
}
var recalc = $(this).parents('tr').find('.cart_price_prod i').text().replace(/\s/g, ""),
totalPrice = (recalc * $(this).prev().val()).toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$(this).parents('tr').find('.cart_total_price i').text(totalPrice);
calcTotal();
return false;
});
//уменьшение значения value на 1
$(".minus").click(function() {
var data = $(this).next().val();
if (data > 0) {
$(this).next().val(parseInt(data) - 1);
}
var recalc = $(this).parents('tr').find('.cart_price_prod i').text().replace(/\s/g, ""),
totalPrice = (recalc * $(this).next().val()).toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$(this).parents('tr').find('.cart_total_price i').text(totalPrice);
calcTotal();
return false;
});
$('.cart_form .it').change(function() {
var data = $(this).val();
var recalc = $(this).parents('tr').find('.cart_price_prod i').text().replace(/\s/g, ""),
totalPrice = (recalc * data).toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$(this).parents('tr').find('.cart_total_price i').text(totalPrice);
calcTotal();
});
function calcTotal() {
var total = 0, totalDiscountPrice = 0;
totalPrices.each(function() {
var price = parseInt($(this).text().replace(/\s/g, "")),
discount = parseInt($(this).closest('tr').find(discountSelector).text()),
calcDiscount = price - (price/100*discount);
total += price;
totalDiscountPrice += calcDiscount;
});
...