2013-05-22 56 views
1

我不确定为什么,但我遇到了一个严重问题,试图将1添加到变量中。在js中添加两个变量

net = $('#net').val()+1; 
$('#net').val(net).change(); 

这导致1 1(我明白,这只是连接)。最后一行是将其输出到我的输入字段。如果我这样做:

net = net+1; 
$('#net').val(net).change(); 

我得到NaN。当我尝试使用像这样的parseInt:

net = net+1; 
net = parseInt(net,10); 
$('#net').val(net).change(); 

我仍然得到NaN。我查看了其他一些关于这个问题的例子,他们说使用parseInt(),我这样做。我还有什么可以尝试将此添加到现有数字并将其添加到我的字段中?

+0

parseInt($('#net')。val())+ 1 –

回答

4

尝试做net = parseInt(net,10);第一

然后net = net+1;

在你的代码做:

net = net+1; //from this point net=11 
net = parseInt(net,10); 

这是不对的,你应该逆你的两个语句

net = parseInt(net,10); //here net=1 (integer representation) 
net = net+1; // the '+' between two integers will result in an addition and not a concatenation 
+1

parseInt(net,10)是迄今为止最好的答案,因为它可以防止类似“011”的字符串可能被解释为9的奇怪边缘情况。 – Andrew

+0

这是最终做到这一点的那个。感谢ALL的帮助和解答。 – Jim

3

试试这个:

net = +net + 1; 
$("#net").val(net); 

在您的净变量前面的+投下这一个Number

小提琴:http://jsfiddle.net/tymeJV/WudHW/1/

+0

的结果还是得到了NaN。双重quuotes是否有所作为? – Jim

+0

@Jim在您最喜欢的浏览器开发工具中保留一个断点,并检查问题出现在哪里。 –

+0

@Jim - 在做任何数学计算之前,可以做一个快速的'alert(net)'并验证'net'变量实际上是否包含数据? – tymeJV

1
var a = parseInt($('#net').val())+1 

$('#net').val(a).change(); 

这应该帮助。

0

事情是你的变量net不是数字而是一个字符串,你必须首先将其解析为int:

net = parseInt($('#net').val()); 

然后做你想做的添加。

0

使用parseInt

 net = parseInt($('#net').val())+1; 
    $('#net').val(net).change(); 
0

这是因为val()返回一个字符串,并且您尝试将1添加到包含数字1和空格的字符串中。尝试例如

var net = +$.trim($('#net').val()); 
$('#net').val(net + 1).change(); 

这摆脱了白色空间及管网作为其插入回输入(?)前场的数字。