jQuery / Javascript在分配中无效左侧

时间:2012-03-21 11:42:34

标签: javascript jquery

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

var height = help ? 'minus' : 'plus';
var prop = $('#properties');

if(height == 'minus'){
    prop.height(prop.height() -= 206);
} else {
    prop.height(prop.height() += 206);
}

在添加/减少的两行上都失败了!有什么想法吗?

5 个答案:

答案 0 :(得分:8)

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

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

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

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

会这样做。

答案 1 :(得分:2)

你不能 - =一种方法。

您需要prop.height(prop.height() - 206); 或首先收集价值然后 - =它就像...

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

答案 2 :(得分:2)

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

相同

你可以改为; prop.height(prop.height() - 206);

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

答案 3 :(得分:1)

var height = help ? 'minus' : 'plus';
var prop = $('#properties');
var propHeight = prop.height();

if(height === 'minus'){
    prop.height(propHeight - 206);
} else {
    prop.height(propHeight + 206);
}

答案 4 :(得分:1)

你已经得到了答案,但我想提一下为什么要加上或减去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));