我正在使用amazon产品api,我的请求返回xml,其中编码为json。
我的Feed中的某些商品没有价格,因此我收到以下错误
TypeError: this.ItemAttributes.ListPrice is undefined
但是我可以检索销售价格。所以我想基本看看是否
this.ItemAttributes.ListPrice是未定义的,如果是这样,那么查找...
this.Offers.OfferListing.Price.FormattedPrice
我如何在jQuery中执行此操作?
我试过了..
if (this.ItemAttributes.ListPrice != null){
var price = this.ItemAttributes.ListPrice;
}else{
var price = this.Offers.OfferListing.Price.FormattedPrice
}
答案 0 :(得分:2)
近。您想要检查undefined
,而不是null
。
一种方法可能是:
var price;
if (this.ItemAttributes.ListPrice !== undefined) {
price = this.ItemAttributes.ListPrice;
}
else {
price = this.Offers.OfferListing.Price.FormattedPrice;
}
如果你想覆盖所有假值(null,undefined,zero ......),你可以将第一行转为:
if (this.ItemAttributes.ListPrice) {
...
您可以使用||更加简洁地书写要么 ?运营商,但一定要保持可读性。
答案 1 :(得分:1)
如果你正在检查多个值,可能更容易编写一个函数来检查值,如果它没有未定义或为null则返回它,如果是,则返回false。
var checkObj = function(obj) {
if(obj != null || obj != undefined) {
return obj;
} else {
return "Unavailable";
}
};
答案 2 :(得分:0)
如果设定了这些价格中的至少一个,这应该有效。
var price = this.ItemAttributes.ListPrice ? this.ItemAttributes.ListPrice : this.Offers.OfferListing.Price.FormattedPrice;
答案 3 :(得分:0)
if (this.ItemAttributes.ListPrice != null || this.ItemAttributes.ListPrice != undefined){
var price = this.ItemAttributes.ListPrice;
}else{
var price = this.Offers.OfferListing.Price.FormattedPrice
}