gpt4 book ai didi

javascript - 随着购物车数量的增加或减少,计算每行的总价。 (数量*价格)

转载 作者:行者123 更新时间:2023-12-02 23:19:39 26 4
gpt4 key购买 nike

我想随着数量的增加或减少来计算每件商品的总价,但是,当我增加数量时,第一行的价格将放置在所有其他行中。

这是 Html 代码

<form method="post" action="n/GetPostData.php">
<?php
$total=0; $all_cart_products=$shoping_cart->allShopingcartValue($id);
while ($row=mysqli_fetch_assoc($all_cart_products)) { ?>
<!-- Shopin Cart -->
<tr class="cart_item">
<td class="product-remove">
<a id="" class="remove" href="<?php echo $row['shoping_cart_id']; ?>">×</a>
</td>
<input id="p_id" type="hidden" name="shoping_cart_id" value="<?php echo $row['shoping_cart_id'] ?>">
<td class="product-thumbnail">
<a href="single-product.html"><img width="180" height="180" src="assets/images/products/2.jpg" alt=""></a>
<!-- <input type="hidden" name="image" value=""> -->
</td>
<td data-title="Product" class="product-name">
<a href="single-product.html"><?php echo $row['name']; ?></a>
<input type="hidden" name="product_id[]" value="<?php echo $row['product_id']; ?>">
</td>
<td data-title="Price" class="product-price">
<span class="amount">$<?php echo $row['price']; ?></span>
<input type="hidden" name="product_price[]" value="<?php echo $row['price']; ?>" class="p_price">
</td>
<td data-title="Quantity" class="product-quantity">
<input type="number" name="product_quantity[]" class="input-text qty text p_quantity" title="Qty" value="<?php echo $row['quantity']; ?>" max="29" min="0" step="1">
</td>
<td data-title="Total" class="product-subtotal">
<span class="amount p_total_s">$<?php echo $row['total']; ?></span>
<input type="hidden" name="product_total[]" value="<?php echo $row['total']; ?>" class="p_total">
</td>
</tr>
<tr>
<td class="actions" colspan="6">
<input type="submit" value="Update Cart" name="update_cart" class="button">
<span></span>
</td>
</tr>
</tbody>

</table>
</form>

这是 javascript jquery 代码

$('.p_quantity').change(function() {
var price = $('.p_price').val();
var quantity = $('.p_quantity').val();
$('.p_total').text(price * quantity);
});

最佳答案

您需要找到与您的输入相关的其他元素

当您使用 $(".p_price") 时,它会查找具有 class=p_price 的所有元素。

当您在集合上使用 .val() 时,它会为您提供第一个的值。
当您在集合上使用 .text() 时,它会在每个元素中设置文本。

因此 $(".p_total").text($(".p_price").val()) 会将所有 p_totals 设置为第一个 p_price 的值。 (并推断数量)

通过使用$(this).closest(".cart_item"),您可以找到“最近的父项”,即.cart_item

然后使用 cartitem.find(".p_price") (等等),您将获得与触发事件的 p_quantity 位于同一 cart_item 内的 p_price。

给予:

$('.p_quantity').change(function() {
var cartitem = $(this).closest(".cart_item");
var price = cartitem.find('.p_price').val();
//var quantity = cartitem.find('.p_quantity').val();
var quantity = $(this).val(); // same as above, no need to re-find this
cartitem.find('.p_total').text(price * quantity);
});

最后一行可能应该是:

    cartitem.find('.p_total_s').text(price * quantity);
cartitem.find('.p_total').val(price * quantity);

由于 p_total 是隐藏输入,因此应使用 .val()

关于javascript - 随着购物车数量的增加或减少,计算每行的总价。 (数量*价格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com