我想补充1
我的JavaScript变量,但下面的代码没有给出预期的结果:如何将存储在字符串中的数字值相加?
var val1 = document.getElementById('<%= rng1.ClientID %>');
var val2 = val1.value + "1";
alert(val2.value);
我怎样才能做到这一点?
我想补充1
我的JavaScript变量,但下面的代码没有给出预期的结果:如何将存储在字符串中的数字值相加?
var val1 = document.getElementById('<%= rng1.ClientID %>');
var val2 = val1.value + "1";
alert(val2.value);
我怎样才能做到这一点?
,你可以使用函数parseInt函数()存储在val1.value字符串转换成一个数字:
var val2 = parseInt(val1.value) + 1;
注意Number(val1.value)
也将转换您的值转换成一个数字。
CNC中
作为YC建议,强烈建议使用parseInt(val1.value, 10) + 1;
因为如果你的字符串以"0"
字符串被解释为八进制开始。例如。 parseInt("0123") == 83
而不是123
不要忘记在`parseInt()`中添加第二个参数为10,所以它不会错误地评估为八进制。 – Yahel 2011-02-04 11:23:58
更好的是,如果你不需要,就不要使用`parseInt()`,只需使用`+`或`Number()`,而不是那些解析八进制数。例如`+ val1.value + 1`。 ``parseInt()`主要用于从字符串的开头提取数字,所以只要您的字符串是有效的数字字面量,您就不需要它。 – 2011-02-04 11:32:47
必须添加号码,因此尝试没有引号:-)
最简单也是最好的方法是使用+
投了一些。
例子:
+'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
在外部JavaScript文件,你不能使用<%=ControlID.ClientID %>
获取客户端ID。
如果您使用外部JavaScript文件,则需要将客户端ID值传递给该函数。
parseInt($('.scpContainer').height()+200)
您是否试图在数学上添加一个? IE浏览器。 3 + 1 = 4或者在字符串的末尾添加“1”? IE浏览器。 “3”+“1”=“31”。 – anothershrubery 2011-02-04 11:24:56
您正在给`val2`分配一个字符串或一个数字。因此,它不是一个对象,也没有属性“值”。如果您想知道为什么存在`val1.value`:`val1`持有对某个具有`value`属性的HTML表单元素的引用。 – 2011-02-04 11:39:47