Tengo un fragmento de código en el que solo quiero apuntar al total de la cesta y si la cantidad es superior a 40 €, quiero que imprima una cadena para indicar esto o si está por debajo de la cantidad, entonces imprima algo más.
El problema que tengo es que el div que envuelve el monto total de la cesta también indica la cantidad de artículos que hay en su cesta. No puedo cambiar el código existente en el carrito, ¿hay alguna manera de que pueda apuntar al precio del carrito solo en este div?
var patternPrice = /[^0-9\.]/g; var targetBasketTotal = document.querySelector('.cart'); var totalAmount = parseFloat(targetBasketTotal.textContent.replace(patternPrice, "")) / 100; console.log(totalAmount); if(totalAmount < 40) { targetBasketTotal.insertAdjacentHTML("afterend", "<section class='message'>Basket is less then €40</section>"); } else { targetBasketTotal.insertAdjacentHTML("afterend", "<section class='message'>Basket is more then €40</section>"); }
<div class="cart">10 items | € 38,87</div>
Puede usar split
con su reemplazo para seleccionar solo el precio como:
var patternPrice = /[^0-9\.]/g; var targetBasketTotal = document.querySelector('.cart'); var totalAmount = parseFloat(targetBasketTotal.textContent.split('|')[1].replace(patternPrice, "")) / 100; console.log(totalAmount); if(totalAmount < 40) { targetBasketTotal.insertAdjacentHTML("afterend", "<section class='message'>Basket is less then €40</section>"); } else { targetBasketTotal.insertAdjacentHTML("afterend", "<section class='message'>Basket is more then €40</section>"); }
<div class="cart">10 items | € 38,87</div>
Referencia:
PD. Obviamente la estructura debe ser la misma.