简体   繁体   English

将两个产品添加到购物车时,javascript/ajax 不起作用,如何解决?

[英]javascript/ajax not working when add two product to cart, how to solve this?

On my cart view page, I can increase and decrease product quantity by clicking + and - button when the cart has one product.在我的购物车视图页面上,当购物车只有一种产品时,我可以通过单击 + 和 - 按钮来增加和减少产品数量。 When I add more than one product to my cart increase and decrease button does not work at any product.当我将多个产品添加到我的购物车时,增加和减少按钮对任何产品都不起作用。

Working Fine when only one product is in my cart.当我的购物车中只有一种产品时工作正常。 在此处输入图像描述

When adding more than one product to the cart increase(+) and decrease(-) button doesn't work.将多个产品添加到购物车时,增加 (+) 和减少 (-) 按钮不起作用。

在此处输入图像描述 HTML HTML

{% for cart_product in cart %}
    <tr class="product-row">
        <td>
            <figure class="product-image-container">
                <a href="{{ cart_product.product.get_absolute_url }}" class="product-image">
                    <img src="{{ cart_product.product.product_img_1.url }}" alt="product"
                        class="img-fluid">
                </a>
            </figure>
        </td>
        <td>
            <div class="product-single-qty">
                <div class="input-group bootstrap-touchspin bootstrap-touchspin-injected">

                    <div class="minus-cart value-button"
                        value="Decrease Value" pid="{{ cart_product.product.id }}">-</div>
                    <span class="number">{{ cart_product.quantity }}</span>
                    <div class="plus-cart value-button"
                        value="Increase Value" pid="{{ cart_product.product.id }}">+</div>
                </div>
            </div>
        </td>
        <td class="text-right">
            <span class="subtotal-price each_pro_subtotal">{{ cart_product.total_cost }}</span>
        </td>
    </tr>
{% endfor %}

javascript javascript

$(".plus-cart").click(function(){
    var id = $(this).attr("pid").toString();
    var eml = this.parentNode.children[1];

    $.ajax({
        type : "GET",
        url : "/shop/pluscart",
        data : {
        prod_id : id
        },
        success : function(data){
        eml.innerText = data.quantity;
        each_subtotal = document.getElementsByClassName("each_pro_subtotal");
        each_subtotal[0].innerText = data.each_pro_subtotal;
        document.getElementById("subtotal").innerText = data.subtotal;
        },
    })
});

You can try to replace var eml = this.parentNode.children[1];您可以尝试替换var eml = this.parentNode.children[1]; with:和:

var eml = $(this).closest('span.number')[0];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM