Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中复选框“添加到购物车”_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 选中复选框“添加到购物车”

Javascript 选中复选框“添加到购物车”,javascript,php,jquery,html,Javascript,Php,Jquery,Html,所以我的购物车有些问题。一些jQuery问题,我想知道是否有人能为我指出正确的方向 问题是,我正在尝试使购物车更具动态性,如果您选中一个复选框,则商品将添加到购物车中,并且该商品的总价格和折扣也将显示出来 只是复选框部分有问题 $(document).ready(function($){ $('#cart_listing .quantity').change(function (event) { $quan = $(this); console.log($

所以我的购物车有些问题。一些jQuery问题,我想知道是否有人能为我指出正确的方向

问题是,我正在尝试使购物车更具动态性,如果您选中一个复选框,则商品将添加到购物车中,并且该商品的总价格和折扣也将显示出来

只是复选框部分有问题

$(document).ready(function($){
    $('#cart_listing .quantity').change(function (event) {
        $quan = $(this);
        console.log($quan.parent().next()[0]);
        $quan.parent().next().find('.price').text(function () {
            return $quan.val() * parseInt($(this).attr('data-val'), 10) + ' €';
        });
            var total = 0;
            $('#cart_listing .price').each(function(k, v){
                total += parseFloat($(v).text(), 10); 
            });

            $('#cart_listing .faster').text(function () {
                faster = parseInt($(this).attr('data-val'), 10);
                return $(this).attr('data-val' + ' €');
            });

            var discount_pct = parseInt($("#cart_listing .discount").data("val"), 10);
            var discount = -(total * discount_pct/100);

            $('#cart_listing .discounted').text('-' + -discount + ' €');
            $('#cart_listing #total').text(total + discount + faster + ' €')
    });
});


jsiddle:

我没有正确理解您的问题,但我认为您希望在使用jQuery选中复选框时为复选框添加值

$('input[type=checkbox]').click(function(){
     if($(this).is(':checked')){ //use this to see if the checkbox is checked or not
         //do something...
     }
});
我不知道你是否想要这样的东西。如果没有,你能进一步澄清吗?谢谢

编辑:

所以,你基本上用的是同一个东西,也许像这样

if($(this).is(':checked')){
    console.log($(this).parent('td').siblings('td').html()); // check this, you'll have the item name. (the first td)
    console.log($(this).attr('data-val')); // this will have the value on the "data-val" attribute on your checkbox
}
所以,现在您有了产品的名称(第一个日志)和价格(第二个日志)。
现在请记住,只有在格式保持一致的情况下,这才有效,而且您可能希望为所有产品复选框指定一个唯一的类,而不是执行一般的
输入[type=checkbox]
,这样就不会干扰您可能拥有的其他复选框。希望这有帮助。如果没有,我很乐意回答更多的问题。谢谢

你在说哪个复选框?你的JSIDLE有一大堆不同的复选框。大部分都是,但是1会让我更接近@hofan41I我是这样想的,假设你选中“1x基本待机覆盖:”旁边的复选框,然后项目被添加到右边的购物车(或JSIDDLE页面的顶部)复选框中的数据val与总价一起添加@sulavvr@PrinceSamuel你能检查一下答案的编辑部分吗?如果这对你有帮助,请告诉我。谢谢因此代码不起作用,我更新了JSFIDLE。我将复选框命名为“基本覆盖”=>class=“Basic\u standby”。你能私下里给出你的答案吗@sulavvr@PrinceSamuel代码不起作用,因为您必须绑定复选框上的单击事件<代码>$('input[type=checkbox]')。单击(function(){//您的代码…})您刚刚编写了
if
语句。这是JSFIDLE。。希望对你有帮助。。谢谢@我想你只是需要有人给你指出正确的方向。将
控制台。日志
替换为
警报
,运行小提琴并单击复选框,查看项目是否被警报。之后,您必须使用这些值,并将其附加到购物车中。使用jquery的
append
方法将商品名称附加到购物车中,对于总价,您有了值,只需将其添加到总价中即可。清楚吗?我不想做整个加法,你不会那样学的。如果你不明白,我很乐意进一步指导你。谢谢