2012-10-16 19 views

回答

7

.value返回類型爲字符串,所以你得到串連接而不是兩個數的添加。

您需要使用parseInt上的值。

alert(allspan[i].offsetTop + parseInt(document.getElementById("size").value,10)); 
+3

+1 – jbabey

+0

@jbabey你甚至不需要parseInt函數爲... – Christoph

+0

@Christoph「如果是在混合字符的字符串:試試這個(WTF?) ,結果你會得到NaN。「更多bulletproof總是更好:) – jbabey

1

您可能需要使用parseInt(myVar)parseFloat(myVar)將其轉換爲數字數據類型。

+0

@Oded同意了,儘管它默認爲不同的基數(半徑?),這取決於字符串以什麼開始。 – jbabey

+0

@提供的信息不是真的,對於除'0'或'0x'以外的任何主數字,默認值爲'10' – Christoph

+1

@Christoph - 是的,我沒有完全理解它。但是這並不能改變你應該總是使用基數的事實。 – Oded

1

將一個整數(allspan[i].offsetTop)添加到字符串(document.getElementById("size").value)中,該字符串將是一個字符串。

如果使第二值的整數,你將被罰款:

allspan[i].offsetTop + parseInt(document.getElementById("size").value) 
1

這是一個常見的問題。如果你打算在數學方程中使用變量,那麼你必須使用parseInt(variableName)來確保它是一個數字。

1

嘗試:

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

這是因爲document.getElementById("size").value返回一個字符串,而不是一個整數。的唯一人物指定基數參數

parseInt(document.getElementById("size").value);