这是我的 JSON 文件
"shipping":{
"countries":{
"150":{
"id":150,
"code":"nl",
"title":"Nederland"
}
},
"country":150,
"zipcode":null,
"methods":{
"core|13490|40699":{
"id":"core|13490|40699",
"title":"ophalen",
"description":"ophalen",
"content":false,
"pickup":true,
"cod":false,
"price":{
"price_excl":"0.0000",
"price_incl":"0.0000"
}
},
"core|10292|40718":{
"id":"core|10292|40718",
"title":"Pakketdienst",
"description":"Pakketdienst",
"content":false,
"pickup":false,
"cod":false,
"price":{
"price_excl":"33.5714",
"price_incl":"39.9500"}
}
}
}
我的脚本如下所示:
function bakVormShipping(targetClass){
$.getJSON('http://shop.com/cart/?format=json', function(data){
var methods = ''
$.each(data.cart.shipping.methods, function(index, methods){
if (index == "core|10292|40696") {
$('<span></span>').html('<strong>' + methods.price.price_incl + '</strong>').appendTo(targetClass);
}
else if (index == "core|10292|40693") {
$('<span></span>').html('<strong>' + methods.price.price_incl + '</strong>').appendTo(targetClass);
}
else if (index == "core|10292|40718") {
$('<span></span>').html('<strong>' + methods.price.price_incl + '</strong>').appendTo(targetClass);
}
});
});
}
首先是一些小解释。您看到的 json 是从“购物车”页面调用的。您看到的第一种方法是运输方式:在商店取货。第二个用于实际运输。我想在我商店的不同页面上加载第二个(实际运输)。所以人们可以看到运费是多少。所有产品都基于重量,因此当产品重量更重时,运费会更改为 ID 为“core|10292|40693”和“core|10292|40718”(参见代码)的方法,并且所有不同的价格都会偏离路线. 所有这些都是动态的,因此 json 将始终具有提货方法和实际的运输方法。
我试图实现的是 a) 缩短代码。例如,如果 (index == "core|10292|40696" || "core|10292|40693" || "core|10292|40718") 不起作用并打印出取货方式和实际运输方式.
b) 将输出转换为具有两位小数的货币。我搜索了这个论坛,但我无法让它在这个代码上工作。代码现在打印 39.9500 而不是 39.95
c)我想摆脱,$('<span></span>')
因为代码现在可以打印所有内容。我尝试使用 $(methods) 但这给出了“未定义”错误。显然因为var methods =
是“空的”并且什么都不做。
有没有人有一些方向或愿意提供帮助?我对 JSON 和 jquery 很陌生,所以请耐心等待。