J'ai un balisage HTML comme ceci:
$('.FullBox').each(function() {
$('.item').each(function() {
console.log($(this).find('.price').html();
});
});
3 Réponses :
Au lieu d'imprimer chaque prix individuellement, ajoutez-les à un comptoir. De plus, vous devez limiter le sélecteur éditer: Comme vous avez une panneau de signe avant les numéros, vous devez les convertir en chiffres pure avant les calculs. P> $ (this) $ ("item") code> au lieu de $ (". élément") code> counter=counter + parseFloat($(this).find('.price').html().replace('$',''))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="FullBox">
<div class="totalPrice"></div>
<div class="item">
<div class="title">Item 1</div>
<div class="price">$35</div>
</div>
<div class="item">
<div class="title">Item 2</div>
<div class="price">$58.99</div>
</div>
</div>
<div class="FullBox">
<div class="totalPrice"></div>
<div class="item">
<div class="title">Item 3</div>
<div class="price">$22</div>
</div>
<div class="item">
<div class="title">Item 4</div>
<div class="price">$32</div>
</div>
</div>Ne postez pas seulement du code, expliquez ce que l'OP a mal fait et comment vous l'avez corrigé.
Ceci est une solution de JavaScript à vanille simple qu'au lieu de simplement changer le contenu de p> totalprice code> divs les crée également. <div class="FullBox">
<div class="item">
<div class="title">Item 1</div>
<div class="price">$35</div>
</div>
<div class="item">
<div class="title">Item 2</div>
<div class="price">$58.99</div>
</div>
</div>
<hr />
<div class="FullBox">
<div class="item">
<div class="title">Item 3</div>
<div class="price">$22</div>
</div>
<div class="item">
<div class="title">Item 4</div>
<div class="price">$32</div>
</div>
</div>