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);

还有其他几种方法可以通过在其前面加上 +~~

来实现相同的效果