JavaScript var 未被识别为数字
JavaScript var not being recognized as a number
我有一个 HTML div,我使用 JavaScript 从中检索值,如下所示:
var oCreditStatus = document.getElementById('creditStatusField');
var oOrigValue = oCreditStatus.value;
var oOrigValue 总是一个数字,有时为 0(零)。
我现在想将数字递增或递减 1。但是,当我执行以下操作时:
var oNewValue = oCreditStatus.value + 1;
我得到值 01,然后是 011,这是错误的,因为我想要 1,2。
我知道它无法将其识别为数字,但我如何才能将其识别为数字。
你不能。 Javascript 引擎会将其读取为 text/string。您必须使用以下代码:
编辑。使用基数(基数 10)感谢@James 的修改。
var oCreditStatus = document.getElementById('creditStatusField');
var oOrigValue = parseInt(oCreditStatus.value, 10); // use parseFloat for decimal.
试试这个
var oCreditStatus = document.getElementById('creditStatusField').value*1;
您需要将 oCreditStatus.value
解析为 int
var oNewValue = parseInt(oCreditStatus.value) + 1;
其实oOrigValue
不是一个数字,而是一个字符串。为了能够向其添加另一个数字,您必须先解析它。有几种方法可以做到:
var parsedValue = parseInt(oOrigValue, 10); // remember about the second parameter - the radix
或更简单,但可读性较差
var parsedValue = +oOrigValue;
var oOrigValue will always be a number, and sometimes 0 (Zero).
只需将它传递给 Number
函数,因为 oOrigValue
始终是一个数字。 (注:0
也是一个数字)
var oOrigValue = Number(oCreditStatus.value);
还有其他几种方法可以通过在其前面加上 +
和 ~~
来实现相同的效果
我有一个 HTML div,我使用 JavaScript 从中检索值,如下所示:
var oCreditStatus = document.getElementById('creditStatusField');
var oOrigValue = oCreditStatus.value;
var oOrigValue 总是一个数字,有时为 0(零)。
我现在想将数字递增或递减 1。但是,当我执行以下操作时:
var oNewValue = oCreditStatus.value + 1;
我得到值 01,然后是 011,这是错误的,因为我想要 1,2。
我知道它无法将其识别为数字,但我如何才能将其识别为数字。
你不能。 Javascript 引擎会将其读取为 text/string。您必须使用以下代码:
编辑。使用基数(基数 10)感谢@James 的修改。
var oCreditStatus = document.getElementById('creditStatusField');
var oOrigValue = parseInt(oCreditStatus.value, 10); // use parseFloat for decimal.
试试这个
var oCreditStatus = document.getElementById('creditStatusField').value*1;
您需要将 oCreditStatus.value
解析为 int
var oNewValue = parseInt(oCreditStatus.value) + 1;
其实oOrigValue
不是一个数字,而是一个字符串。为了能够向其添加另一个数字,您必须先解析它。有几种方法可以做到:
var parsedValue = parseInt(oOrigValue, 10); // remember about the second parameter - the radix
或更简单,但可读性较差
var parsedValue = +oOrigValue;
var oOrigValue will always be a number, and sometimes 0 (Zero).
只需将它传递给 Number
函数,因为 oOrigValue
始终是一个数字。 (注:0
也是一个数字)
var oOrigValue = Number(oCreditStatus.value);
还有其他几种方法可以通过在其前面加上 +
和 ~~