编号+;数字=”;numbernumber";在JavaScript中
如果我在文本框中键入50并将0作为偏移量,则得到050。为什么?代码如下:编号+;数字=”;numbernumber";在JavaScript中,javascript,html,textbox,numbers,Javascript,Html,Textbox,Numbers,如果我在文本框中键入50并将0作为偏移量,则得到050。为什么?代码如下: alert(allspan[i].offsetTop+document.getElementById("size").value); .value的返回类型是一个字符串,因此您得到的是字符串串联,而不是两个数字相加 您需要对值使用parseInt alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10)); 您可能需
alert(allspan[i].offsetTop+document.getElementById("size").value);
.value
的返回类型是一个字符串,因此您得到的是字符串串联,而不是两个数字相加
您需要对值使用parseInt
alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10));
您可能需要使用
parseInt(myVar)
或parseFloat(myVar)
将其转换为数字数据类型。将整数(allspan[i].offsetTop)
添加到字符串(document.getElementById(“size”).value
)中,该字符串将成为字符串
如果将第二个值设为整数,则可以:
allspan[i].offsetTop + parseInt(document.getElementById("size").value)
这是一个常见的问题。如果要在数学方程中使用变量,则必须使用
parseInt(variableName)
确保它是一个数字,然后尝试:
alert(parseInt(allspan[i].offsetTop) + parseInt(document.getElementById("size").value));
这是因为
document.getElementById(“size”).value
返回的是字符串,而不是整数。试试这个:
parseInt(document.getElementById("size").value);
@Oded同意,尽管它默认为不同的半径(半径?),这取决于字符串的开头。@Oded不是真的,除了
0
或0x
@Christoph外,任何前导数字的默认值都是10
-是的,我没有完全正确。但这并不能改变一个事实,即您应该始终使用基数。@Christoph“如果它是一个包含字母的字符串,那么结果将是NaN。”越防弹越好:)@jbabey如果发生这种情况,很可能发生了错误(用户输入错误),我更愿意拦截它(测试NaN)而不是默默地得到一个错误的结果