jQuery/Javascript赋值左侧无效

jQuery/Javascript Invalid left-hand side in assignment

本文关键字:无效 赋值 Javascript jQuery      更新时间:2023-09-26

我使用的是这个相对简单的代码:

var height = help ? 'minus' : 'plus';
var prop = $('#properties');
if(height == 'minus'){
    prop.height(prop.height() -= 206);
} else {
    prop.height(prop.height() += 206);
}

它在做加法/减法的两行都失败了!有什么想法吗?

-=运算符等于operand = operand - value,在您的情况下看起来像

prop.height() = prop.height() - 206;

这显然会失败。您只需要使用减号运算符即可完成该任务。

prop.height(prop.height() - 206);

将执行此操作。

您不能-=方法。

要么你需要prop.height(prop.height() - 206);或者先收集值,然后-=就像。。。

var h = prop.height();
h -= 206
 prop.height( h);

prop.height() -= 206尝试分配给返回值,这不是一个不可能的变量;与(prop.height() = prop.height() - 206)相同

相反,你可以;prop.height(prop.height() - 206);

或(prop.height(prop.height() + (height === 'minus' ? -206 : 206));

var height = help ? 'minus' : 'plus';
var prop = $('#properties');
var propHeight = prop.height();
if(height === 'minus'){
    prop.height(propHeight - 206);
} else {
    prop.height(propHeight + 206);
}

您已经得到了答案,但我想提一下为什么要使用if/else来进行加法或减法:

// subtract height if help is true, otherwise add height
var heightmodifier = help ? -1 : 1;
var prop = $('#properties');
var propHeight = prop.height();
prop.height(propHeight + (206 * heightmodifier));