Собрать значения и вернуть .map() или .each()

187
24 мая 2018, 20:30

Подскажите, что-то никак не соображу: есть верстка из 4 элементов, в котором есть в поле div число (наценка). Нужно собрать эти числа, к каждому прибавить некую сумму (константу) и вернуть обратно но в другое поле. Я пробовал так:

var classes = $("#tkans_block ul li .pricegroup_markup").map(function(indx, element){
        $(element).text(parseInt($(element).text().replace(/\s/g, ''))+parseInt(current_price));
    });

Но у меня при таком раскладе при повторном срабатывании события он уже прибавляет те суммы, что перед этим вернулись в поля, поэтому я вынес саму наценку в другое поле но теперь во все поля возвращается только результат последней итерации. Вот разметка:

<ul class="tabs">
<li class="msbabrics_pricegroup active">
    <div class="hide pr_gr_markup_price">0.00</div>
    <div class="pricegroup_markup prgr_price_1"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div>
</li>
<li class="msbabrics_pricegroup">
    <div class="hide pr_gr_markup_price">1220.00</div>
    <div class="pricegroup_markup prgr_price_2"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div>
</li>
<li class="msbabrics_pricegroup">
    <div class="hide pr_gr_markup_price">2800.00</div>
    <div class="pricegroup_markup prgr_price_3"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div>
</li>
<li class="msbabrics_pricegroup"><div class="hide pr_gr_markup_price">4020.00</div>
    <div class="pricegroup_markup prgr_price_4"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div>
</li>

То есть кратко: нужно собрать значения из полей <div class="hide pr_gr_markup_price">...</div> прибавить к каждому числу например 10 000 и вернуть результат операции в поле span <div class="pricegroup_markup prgr_price_4"><span>...</span> <i class="fa fa-rub" aria-hidden="true"></i></div>

Answer 1

$('.pr_gr_markup_price').each(function(){ 
  var price = +$(this).text(), 
      step = 1000; 
  $(this).siblings('.pricegroup_markup').children('span').text((price+step).toFixed(2)); 
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<ul class="tabs"> 
<li class="msbabrics_pricegroup active"> 
    <div class="hide pr_gr_markup_price">0.00</div> 
    <div class="pricegroup_markup prgr_price_1"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div> 
</li> 
<li class="msbabrics_pricegroup"> 
    <div class="hide pr_gr_markup_price">1220.00</div> 
    <div class="pricegroup_markup prgr_price_2"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div> 
</li> 
<li class="msbabrics_pricegroup"> 
    <div class="hide pr_gr_markup_price">2800.00</div> 
    <div class="pricegroup_markup prgr_price_3"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div> 
</li> 
<li class="msbabrics_pricegroup"><div class="hide pr_gr_markup_price">4020.00</div> 
    <div class="pricegroup_markup prgr_price_4"><span>14790</span> <i class="fa fa-rub" aria-hidden="true"></i></div> 
</li> 
</ul>

READ ALSO
Как выполнить свое событие первым до остальных?

Как выполнить свое событие первым до остальных?

Скажем есть блок и чужой скрипт всплывающего окна при клике по немуНужно что бы само написанное событие hover выполнилось до события hover из чужого...

216
Проблема с xhr запросами

Проблема с xhr запросами

Есть приложение - asp net core mvc с контроллером api (просто контроллер в котором содержаться post/get методы)Есть фронт, который вызывает эти методы...

196
Изменить значение в Json js

Изменить значение в Json js

В data приходит объект абсолютно такой жеИ нужно просто увеличить значение count

199
JS + JQ событие клавиш

JS + JQ событие клавиш

Код регистрирующий событие нажатие клавиши реагирует после однакратного клика на документе

254