I'm trying to sum element from data-item-rate
.
Actually, when you click Oui
for an item it add this one to the cart at the bottom of the page. When you click Non
it remove it from the cart and recalculate the total.
But if you remove all from the cart, and then add a new item, the total shows an NaN
.
Do you know why ?
$(document).ready(function() {
$('li.nav-item').click(function() {
id = $(this).data('id');
name = $(this).data('name');
rate = $(this).data('rate');
value = $(this).data('value');
if(rate == "No") {
if(parseInt(value) < 0) {
$(this).data('value',0);
}
}
else {
var dataval = "-"+value;
$(this).siblings('li').data('value',dataval);
}
$('#' + id + '_name').empty();
$('#' + id + '_rate').empty();
$('#' + id + '_rate').attr('data-item-rate', 0);
if(parseInt(value) > 0) {
value_sign = '$' + value;
$('#' + id + '_name').html('<strong>' + name + '</strong>');
$('#' + id + '_rate').html(value_sign);
$('#' + id + '_rate').attr('data-item-rate', value);
}
updateTotal(value);
});
// Update the total
function updateTotal(value) {
/*var total = 0;
$('p[data-item-rate]').each(function() {
total += isNaN(parseInt($(this).data('item-rate'))) ? 0 : parseInt($(this).data('item-rate'));
});
total = total + ' $';*/
var total = $('#total_estimate').html();
total = total.split(" ");
total = parseInt(total[0]) + parseInt(value) + " $"
$('#total_estimate').html(total);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="row gap-y">
<div class="col-lg-8 sticky">
<div class="row">
<div class="col-lg-6">
<h2>Site bilingue</h2>
</div>
<div class="col-lg-6">
<ul class="nav nav-tabs-outline">
<li class="nav-item" data-id="bilingual" data-name="Site bilingue" data-rate="Non" data-value="0">
<a class="nav-link" data-toggle="tab" href="#">
Non
</a>
</li>
<li class="nav-item" data-id="bilingual" data-name="Site bilingue" data-rate="Oui" data-value="50">
<a class="nav-link active" data-toggle="tab" href="#">
Oui
<span class="badge badge-secondary">+ 50 $</span>
</a>
</li>
</ul>
</div>
<div class="col-lg-12">
<p class="lead">
Lorem ipsum...
</p>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-6">
<h2>Nom de domaine</h2>
</div>
<div class="col-lg-6">
<ul class="nav nav-tabs-outline">
<li class="nav-item" data-id="domain" data-name="Nom de domaine" data-rate="Non" data-value="0">
<a class="nav-link active" data-toggle="tab" href="#">
Non
</a>
</li>
<li class="nav-item" data-id="domain" data-name="Nom de domaine" data-rate="Oui" data-value="50">
<a class="nav-link " data-toggle="tab" href="#">
Oui
<span class="badge badge-secondary">+ 50 $</span>
</a>
</li>
</ul>
</div>
<div class="col-lg-12">
<p class="lead">
Lorem ipsum...
</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="cart-price">
<div class="flexbox">
<div>
<p id="bilingual_name"></p>
<p id="domain_name"></p>
<p id="hosting_name"></p>
<p id="ssl_name"></p>
<p id="gmaps_name"></p>
<p id="admin_name"></p>
<p id="ga_name"></p>
<p id="catalogue_name"></p>
<p id="online-store_name"></p>
<p id="blog_name"></p>
<p id="gallery_name"></p>
<p id="contact-form_name"></p>
<p id="newsletter_name"></p>
</div>
<div>
<p id="bilingual_rate" data-item-rate="0"></p>
<p id="domain_rate" data-item-rate="0"></p>
<p id="hosting_rate" data-item-rate="0"></p>
<p id="ssl_rate" data-item-rate="0"></p>
<p id="gmaps_rate" data-item-rate="0"></p>
<p id="admin_rate" data-item-rate="0"></p>
<p id="ga_rate" data-item-rate="0"></p>
<p id="catalogue_rate" data-item-rate="0"></p>
<p id="online-store_rate" data-item-rate="0"></p>
<p id="blog_rate" data-item-rate="0"></p>
<p id="gallery_rate" data-item-rate="0"></p>
<p id="contact-form_rate" data-item-rate="0"></p>
<p id="newsletter_rate" data-item-rate="0"></p>
</div>
</div>
<hr>
<div class="flexbox">
<div>
<p><strong>Total:</strong></p>
</div>
<div>
<p class="fw-600" id="total_estimate">0 $</p>
</div>
</div>
</div>
</div>
</form>