逻辑可能会在jquery折扣中破坏

时间:2011-05-30 03:51:01

标签: jquery

这是一个例子 - 但问题是它停在没有销售价格的产品上,说“我爱伦敦迷你框架钱包”只需135美元。它将继续找到类别项目,但将停止只有一个实际价格(没有销售价格)的产品。这是为什么?不能继续查找课程项目并相应地计算,直到页面末尾忽略只有实际价格的产品?

function calculate(sale, original) {

    percentDiscount = Math.round(eval((sale / original) * 100));

    return percentDiscount;
}

$(document).ready(function() {

    var salecost;
    var originalcost;
    var percent;
    $('.item').each(function() {
        salecost = $(this).find('.saleprice').html();
        salecost = salecost.replace(/[^\d\.]/g, "");


        originalcost = $(this).find('.actualprice').html();
        originalcost = originalcost.replace(/[^\d\.]/g, "");
        percentDiscount = calculate(salecost, originalcost);
        if (percentDiscount > 30) {

            $(this).find("#percentoff").html((percentDiscount) + '%');
            $(this).find("#percentoff").addClass('badge30');
        }

        if (percentDiscount > 50) {

            $(this).find("#percentoff").html((percentDiscount) + '%');
            $(this).find("#percentoff").addClass('badge50');
        }

        if (percentDiscount > 70) {

            $(this).find("#percentoff").html((percentDiscount) + '%');
            $(this).find("#percentoff").addClass('badge70');
        }
    });
});

修改 一个问题 如果0和30 =绿色 如果30和50 =棕色 如果50和70 =黄色 如果70和100 =红色

是不是这样:

 if (50> percentDiscount > 70) {

                    $(this).find("#percentoff").html((percentDiscount) + '%');
                    $(this).find("#percentoff").addClass('badge70');
                }

编辑II 另一个问题:

如何将html中的价格附加到div percentoff?

$(this).find("#percentoff").append.html((percentDiscount) + '%');

1 个答案:

答案 0 :(得分:1)

奇怪的是,它在页面中途停止,但也许你可以使用if语句?

即改变

salecost = $(this).find('.saleprice').html()

if (salecost = $(this).find('.saleprice').html()) {

(当然有一个结束括号)