2011-05-11 73 views
0

我有一個從ajax響應中獲取整數的特殊問題。無論何時我調用下面的代碼,parseInt(data)都會返回NaN,儘管數據是一個字符串。獲取parseInt(數據)返回問題NaN

function(data) //return information back from jQuery's get request 
      { 

       $('#progress_container').fadeIn(100); //fade in progress bar 
       $('#progress_bar').width(data +"%"); //set width of progress bar based on the $status value (set at the top of this page) 
       $('#progress_completed').html(parseInt(data) +"%"); //display the % completed within the progress bar 
      } 
+2

作爲數據發送到此功能的值是什麼? – 2011-05-11 14:30:57

+6

你應該真的嘗試調試它,或者至少提醒實際傳遞給你的代碼的「數據」。我敢打賭問題在那裏。 – Juriy 2011-05-11 14:35:13

+8

你還應該習慣於將第二個'radix'參數傳遞給'parseInt'這個數字基礎。通常你會希望這是10.如果你的數字字符串碰巧有一個前導零,並且你不使用基數,它將被視爲八進制:壞。 – 2011-05-11 14:35:23

回答

1

從這一行的樣子:

$('#progress_completed').html(parseInt(data) +"%"); 

好像你正試圖插入一個百分比作爲HTML到#progress_completed元素。你提到data是一個字符串,那你爲什麼要把它轉換成一個Integer,然後連接另一個字符串(%是一個字符串)?

parseInt(data) + "%" 

上面的這個聲明創建了一個字符串。如果你說data確實是一個字符串,那麼你需要的是:

$('#progress_completed').html(data +"%"); 

我建議加入的console.log(數據)先檢查數據的價值是肯定的。

+0

嗨每一個感謝您的親切考慮,我也嘗試基數parseInt(數據,10)。 – mehr 2011-05-12 04:27:35

+0

當我嘗試提醒(data.length)它給我的結果109, – mehr 2011-05-12 04:29:23

+0

你可以試試alert(data)。瞭解數據的長度在這裏沒有好處。 – Mark 2011-05-12 09:15:28