添加正数和负数

时间:2014-12-01 15:00:56

标签: javascript addition

我做了一个函数来移动一个基于CSS值的元素。我的功能在一个方向上工作,但我在另一个方向上意识到一个奇怪的问题。

首先,我提取元素的左值:

$left_position = element.css('left').replace(/[^-\d\.]/g, ''); // left_position = -400

现在当我为其添加正值时,对于新位置:

$new_left_position = $left_position + 400; 

我预期的结果是0,但结果却是: -400400

如果我更换" +"签署" - "签署它的工作结果是-800

知道为什么吗? 感谢

3 个答案:

答案 0 :(得分:3)

将它解析为整数,你正在整理它,因为一个元素($ left_position)是一个字符串。

$new_left_position = parseInt($left_position) + 400; 

function“.replace()”willcourse总是返回一个字符串,所以你的变量也是一个字符串。

答案 1 :(得分:0)

在javascript中,+符号用于字符串串联连接。

var string = "400";
console.log(string + 400); //400400
console.log(parseInt(string) + 400); //800

答案 2 :(得分:0)

使用ParseInt('$variableName')可以达到理想的效果。

我希望以下内容对您的工作也有帮助。使用简单的jQuery代码,您可以轻松地按照以下方式移动:

HTML:

<input type="button" value="To Left" onclick="moveStuff('-=100px')" />
<input type="button" value="To Right" onclick="moveStuff('+=100px')" />
<div id="stuff" style="padding:10px;background-color:#ff00f0;width:120px">I AM MOVING</div>

jQuery功能:

function moveStuff(px) {
$('#stuff').animate({
    'marginLeft' : px
 },1000);
}

JS Bin

上的工作解决方案