jquery点击和减去

时间:2011-11-28 08:09:14

标签: javascript jquery

我有问题.....

点击.aa时,它会使元素在seattist['seats'][column][row]['price']的帮助下计算价格并显示$(".checkout_area")

中的一般价格

每个按钮都有一个$(".desc2 a")按钮,当点击它时,它应该从一般价格中减去seatlist['seats'][column][row]['price']并将其显示在$(".checkout_area")中,我写了它那里,但我不知道为什么,它不起作用......

有任何建议。 谢谢

    var ipl = 1;
    var price = 0;
    var createNewElem = function(obj) {
        var column = obj.parent().children().index(obj.get(0));
        var row = obj.parent().parent().children().index(obj.get(0).parentNode);
        ++ipl;

        if (!$(obj.attr("rel")) || $(obj.attr("rel")).size() < 1) {
            obj.attr("rel", "#cc_" + ipl);
            $(".seat_desc")
                .append("<div id='cc_" + ipl + "' class='desc2'>" +
                "<p class='section_s'>" + seatlist['seats'][column][row]['sector'].replace(/sector\s/, '') + "</p>" +
                "<p class='row_r'>" + seatlist['seats'][column][row]['row'].replace(/Row\s/, '') + "</p>" +
                "<p class='seat_s'>" + seatlist['seats'][column][row]['seat'].replace(/seat\s/, '') + "</p>" +
                "<a href='#'>remove</a>" +
                "<span> CA $" + seatlist['seats'][column][row]['price'] + "</span>" +
                "<div class='clear'></div>" +
                "</div>");
            price += seatlist['seats'][column][row]['price'];
            $(".checkout_area").html("SUBTOTAL: CA $" + price);
        } else {
            $(obj.attr("rel")).remove();
            obj.attr("rel", "");
             price -= seatlist['seats'][column][row]['price'];
            $(".checkout_area").html("SUBTOTAL: CA $" + price);
        }
    };

    $(".aa").click(function() {
        createNewElem($(this));
    });

$(".desc2 a").live("click", function() {
        var column = $(this).parent().children().index(this);
       var row = $(this).parent().parent().children().index(this.parentNode);
        $(this).parent("div").remove();
        $(".seat p span").html($(".desc2").length);
       $(".checkout_area").html("SUBTOTAL: CA $" + price - seatlist['seats'][column][row]['price']);
        return false;
    });

3 个答案:

答案 0 :(得分:1)

var t=  price - seatlist['seats'][column][row]['price'];
$(".checkout_area").html("SUBTOTAL: CA $" + t ); 

答案 1 :(得分:0)

很难确切地知道你的问题出了什么问题,但是你可以在这两个值上尝试parseFloat -

$(".desc2 a").live("click", function() {
        var column = $(this).parent().children().index(this);
       var row = $(this).parent().parent().children().index(this.parentNode);
        $(this).parent("div").remove();
        $(".seat p span").html($(".desc2").length);
       $(".checkout_area").html("SUBTOTAL: CA $" + parseFloat(price) - parseFloat(seatlist['seats'][column][row]['price']);
        return false;
    });

答案 2 :(得分:0)

您正在将算术与非数字字符串表达式混合。 做点什么

 var t=  price - seatlist['seats'][column][row]['price'];
 $(".checkout_area").html("SUBTOTAL: CA $" + t ); 

编辑 在使用firebug查看代码之后,似乎行col计算导致seatlist数组中的未定义元素。我添加了一个座位并尝试将其删除。它试图减去的元素在座位列表中未定义。根据Firebug,即在我的情况下{col = 3 row = 1 seatlist ['seat'] [3] [1] ['price'] = undefined}。 所以主要问题不在于计算行(尽管如果你想做正确的算术,答案就会出现)。 我建议使用Firebug或Chrome开发人员工具。毕竟我们无法为您调试代码..