2012-07-05 55 views
-1

在Javascript中添加多個變量之和的正確方法是什麼?用parseInt()將變量求和;不工作

這就是我想要做的。我試過,沒有引用我的變量。我沒有得到NaN或Undefined或任何東西。沒有任何輸出。

function setstat(){ 
document.getElementById('date').value = window.opener.document.getElementById('thisday').value; 
document.getElementById('name').value = window.opener.document.getElementById('element_7').value; 
document.getElementById('time').value = window.opener.document.getElementById('stwa').value; 

inbcalls = window.opener.document.getElementById('element_6').value; 
document.getElementById('totinb').value = inbcalls; 
inbcallsp = parseInt("inbcalls",10); 
asaptotal = window.opener.document.getElementById('asapcalls').value; 
document.getElementById('asaptot').value = asaptotal; 
asaptotalp = parseInt("asaptotal",10); 
faxtotal = window.opener.document.getElementById('faxcalls').value; 
document.getElementById('faxtot').value = faxtotal; 
faxtotalp = parseInt("faxtotal",10); 
obtotal = window.opener.document.getElementById('obcalls').value; 
document.getElementById('obtot').value = obtotal; 
totalcalls = inboundcallsp + asaptotalp + faxtotalp + obtotalp; 
document.getElementById('totsum').value = totalcalls; 
} 
+0

您是否嘗試過在控制檯中追蹤每個人? – elclanrs

+0

那麼,「faxtotal」不是一個整數,它是一個字符串。不知道你在做什麼,很難提供幫助。 JS控制檯在哪一天? –

+0

開罐器和開罐器的領域是一樣的嗎?另外,檢查你的控制檯是否有錯誤。 – Ryan

回答

2

你爲什麼要引用變量名?

inbcallsp = parseInt("inbcalls",10); 

應該是:

inbcallsp = parseInt(inbcalls, 10); 

與同爲他們的休息。你想分析變量的值,而不是變量的名字;那些總是會導致NaN

+0

就像我說的,我試過兩種方法。既不可行,也不可能是問題。 –

+0

@pabrams:這是一個問題,另一個OP固定他/她(錯誤的變量名稱)。 – Ryan

1

asaptotalp = parseInt(「asaptotal」,10); 「asaptotal」被識別爲字符串不是變量 你不應該引用它

+0

我只加了引號,因爲沒有它們就無法使用。在發佈問題之前,我只是忘記帶走了。你看到我的代碼有什麼問題嗎? –

+0

可以試試 totalcalls = inboundcallsp * 1 + asaptotalp * 1 + faxtotalp * 1 + obtotalp * 1; 我通常用這個 – Sieryuu

-1

不要使用ParseInt,有時它不會返回正確的值。

更好地利用Number,例如:

var i=Number(your value) 
+1

parseInt是首選的工作方式,當然如果你不指定radix參數'parseInt(num,10)',你會得到「奇數」的返回值。你還需要一個'new'關鍵字才能使你的號碼工作。 –

+0

同意以上。'parseInt(num,10)'是要走的路 –

0

當使用parseInt函數始終指定基數爲10

功能singnature:parseInt函數(字符串,基數)

的基數是可選但如果忽略,JavaScript假定如下:

如果字符串以「0x」開頭,則基數爲16(十六進制) 如果字符串以「0」開頭,則基數爲8(八進制)。這個特性已廢棄 如果字符串與任何其它值開始,基數爲10(十進制)

實施例: parseIn( 「05」)==== 0 - >真

parseIn(「05 「,10)==== 5 - > true