Javascript 如何将存储在字符串中的数值相加?

Javascript 如何将存储在字符串中的数值相加?,javascript,Javascript,我试图将1添加到我的JavaScript变量中,但以下代码没有给出预期的结果: var val1 = document.getElementById('<%= rng1.ClientID %>'); var val2 = val1.value + "1"; alert(val2.value); var val1=document.getElementById(“”); var val2=val1.value+“1”; 警报(val2.值); 如何执行此操作?您可以使用函数pars

我试图将
1
添加到我的JavaScript变量中,但以下代码没有给出预期的结果:

var val1 = document.getElementById('<%= rng1.ClientID %>');
var val2 = val1.value + "1";
alert(val2.value);
var val1=document.getElementById(“”);
var val2=val1.value+“1”;
警报(val2.值);

如何执行此操作?

您可以使用函数parseInt()将存储在val1.value中的字符串转换为数字:

var val2 = parseInt(val1.value) + 1;
请注意,
Number(val1.value)
也会将您的值转换为数字

-编辑-

正如yc所建议的,强烈建议使用
parseInt(val1.value,10)+1“0”
开头,则该字符串将被解释为八进制。例如,
parseInt(“0123”)==83
而不是123

您必须添加数字,因此请尝试不加引号:-)

最简单也是首选的方法是使用
+
转换为数字

示例:

+'234'; // 234
+'042'; // 42! It does not convert to octal
var val1 = +(document.getElementById('<%= rng1.ClientID %>').value); // () added just for the looks
var val2 = val1.value + 1; // if val1 is 5, val2 will be 6 hooray!
alert(val2); // just val2, since it's a plain number not an html input element
在您的情况下:

+'234'; // 234
+'042'; // 42! It does not convert to octal
var val1 = +(document.getElementById('<%= rng1.ClientID %>').value); // () added just for the looks
var val2 = val1.value + 1; // if val1 is 5, val2 will be 6 hooray!
alert(val2); // just val2, since it's a plain number not an html input element
var val1=+(document.getElementById(''.value);//()仅为外观而添加
var val2=val1.value+1;//如果val1是5,val2将是6万岁!
警报(val2);//只是val2,因为它是一个普通的数字,不是html输入元素

在外部JavaScript文件中,不能使用
获取客户端id


如果使用外部JavaScript文件,则需要将客户端id值传递给该函数。

不要忘记在10的
parseInt()
中添加第二个参数,这样它就不会错误地计算为八进制。更好的是,如果不需要,根本不要使用
parseInt()
,只需使用
+
Number()
,这两个都不是八进制。e、 g.
+val1.value+1
parseInt()
主要用于从字符串的开头提取数字,因此只要字符串是有效的数字文字,您就不需要它。并且对其他值使用parseInt()。您是否尝试用数学方法添加一个?即3+1=4。还是在字符串末尾加上“1”?即“3”+“1”=“31”。您正在为
val2
分配字符串或数字。因此,它不是对象,也没有属性
。如果您想知道为什么
val1.value
存在:
val1
包含对某个HTML表单元素的引用,该元素具有属性
value
parseInt($('.scpContainer').height()+200)