-1

如果我在文本框中输入 50 并将 0 作为 offsetTop,我会得到 050。为什么?这是代码:

alert(allspan[i].offsetTop+document.getElementById("size").value);
4

6 回答 6

7

的返回类型.value是一个字符串,所以你得到的是字符串连接而不是两个数字相加。

您需要parseInt使用价值。

alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10));
于 2012-10-16T19:02:37.557 回答
1

您可能需要使用parseInt(myVar)parseFloat(myVar)将其转换为数字数据类型。

于 2012-10-16T19:03:16.347 回答
1

您将一个整数添加(allspan[i].offsetTop)到一个字符串(document.getElementById("size").value),这将是一个字符串。

如果你将第二个值设为整数,你会没事的:

allspan[i].offsetTop + parseInt(document.getElementById("size").value)
于 2012-10-16T19:03:38.253 回答
1

这是一个常见的问题。如果你要在数学方程中使用一个变量,那么你必须通过使用来确保它是一个数字parseInt(variableName)

于 2012-10-16T19:03:57.033 回答
1

尝试 :

alert(parseInt(allspan[i].offsetTop) + parseInt(document.getElementById("size").value));
于 2012-10-16T19:04:05.100 回答
1

这是因为document.getElementById("size").value返回的是字符串,而不是整数。试试这个:

parseInt(document.getElementById("size").value);
于 2012-10-16T19:04:53.197 回答