0

我有一个看起来像这样的脚本:

function bakVormShipping(targetClass) {
    $.getJSON('http://shop.com/cart/?format=json', function (data) {
        $.each(data.cart.shipping.methods, function (index, methods) {
            if (index == "core|2419|36557" || index == "core|2419|36558" || index == "core|2959|31490" || index == "core|2959|31491" || index == "core|2419|36556") {
                $('<strong/>').html('€' + (+methods.price.price_incl).toFixed(2)).appendTo(targetClass);
            }
        });
    });
}

当“索引”不等于索引之一时,我在萤火虫中收到未定义或空错误。我怎样才能防止这种情况?显然与if (index == null)等有关,但我不知道如何以正确的方式做到这一点。

4

1 回答 1

1

在 if 语句上方添加对 undefined 的检查

function bakVormShipping(targetClass) {
$.getJSON('http://shop.com/cart/?format=json', function (data) {

    $.each(data.cart.shipping.methods, function (index, methods) {
        if(typeof(index) == "undefined"){
            return;
        }

        if (index == "core|2419|36557" || index == "core|2419|36558" || index == "core|2959|31490" || index == "core|2959|31491" || index == "core|2419|36556") {
            $('<strong/>').html('€' + (+methods.price.price_incl).toFixed(2)).appendTo(targetClass);
        }

    });
});

您可能还想检查data您收到的对象是否具有您正在引用的属性data.cartdata.cart.shipping以及data.cart.shipping.methods

于 2012-06-05T22:45:08.510 回答