我正在尝试在变量中使用 IF 语句...
当我以价格开始时,查看 // paypal变量下的文字:if(item.quantity =“4”)
product.find('.product-buy').click(function(e) {
//check if option is set
var option = $(this).attr('option') || '';
var item = {
group: product.parent().attr('id'),
id: product.attr('id'),
option: option || 'NA',
LOOK HERE---->>> quantity: parseInt(product.attr('minimum'+option),10) || 1,
minimum: parseInt(product.attr('minimum'+option),10) || 1,
//TEST
gap: parseFloat(product.attr('gap'+option)),
//TEST
//paypal variables
name: product.attr('name'+option),
AND HERE---->>> price: if(item.quantity="4")
{
parseFloat(product.attr('price'+option))
}
if(item.quantity="8")
{
parseFloat(product.attr('price2'+option))
}
if(item.quantity="12")
{
parseFloat(product.attr('price3'+option))
}
shipping: product.attr('shipping'+option),
number: product.attr('number'+option),
handling: product.attr('handling'+option)
};
addToCart(item,true);
e.preventDefault();
}).fadeTo(0, 0.7).hover(hoverHandler(300, 1), hoverHandler(300, settings.buttonsOpacity));
//set currency sign
if (settings.currencySign) {
product.find('.product-currency').html(settings.currencySign);
}
});
所以基本上,如果数量属性等于4,我希望item.price值为parseFloat' price '属性... to parseFloat'< strong> price2 '属性,如果数量等于8 ...而parseFloat' price3 '属性,如果数量等于12。
正如你所看到的,现在我试过了:
price: if(item.quantity="4")
{
parseFloat(product.attr('price'+option))
}
if(item.quantity="8")
{
parseFloat(product.attr('price2'+option))
}
if(item.quantity="12")
{
parseFloat(product.attr('price3'+option))
}
但它不起作用。有什么想法吗?
谢谢你!答案 0 :(得分:1)
你不能在Javascript中的if这样的表达式中嵌入if语句。该语言不允许。
将值分配给变量,然后将要创建的对象的price
属性分配给该变量。
var price = 0;
if(item.quantity==="4") {
price = parseFloat(product.attr('price'+option))
}
else if ... {
}
...
var item = {..., price: price, ...}
答案 1 :(得分:0)
通过查看其他评论,这是正确的,但您也可以将所有内容放在一个自动执行的匿名函数中,该函数返回价格值:
price: (function(){
var price;
...
return price;
}())
答案 2 :(得分:0)
查看三元运算符。
price: item.quantity == "4" ? parseFloat(product.attr('price'+option)) : (
item.quantity == "8" ? parseFloat(product.attr('price2'+option)) : (
item.quantity == "12" ? parseFloat(product.attr('price3'+option))
)
),
(虽然这并没有考虑到item.quantity
在这一点上未定义的事实,正如关于matt b答案的评论中所指出的那样。只需在{{{}之外定义一个quantity
变量1}}对象起初可能是一个简单的修复。)