2011-03-03 23 views
0

返回NaN值這裏是我的功能,這個工程:從功能

my.SetTablepagerIndex = function() { 
    var blah = $("#currentPage").text(); 
    var test = blah.indexOf("o"); 
    var pagerIndex = $.trim(blah.substring(4, test)); 
    return pagerIndex; 
} 

然後,我將其賦值給一個變種。爲什麼不起作用?我只是得到一個「男」

var index = Util.SetTablepagerIndex(); 

我不想聲明一個全局變量,所以,如果我在做什麼是不好的東西有什麼更好的方式來傳遞這種價值?

+2

我沒有看到任何東西會產生'NaN'。請發佈導致此問題的實際代碼。 – user113716 2011-03-03 21:50:16

+0

你是對的,沒有任何會導致NaN的東西。我的功能被調用失序... – Avien 2011-03-04 15:00:04

回答

0

實際的問題是我的函數被亂序調用。 setTablepagerIndex正在呼叫器的表被創建之前被調用...

0

索引可能被解釋爲字符串而不是整數。你在哪裏得到NaN?對於index

你可以嘗試明確返回一個整數,你可能想測試你的瞬間變量(blahtest),以確保它們的存在:

my.SetTablepagerIndex = function() { 
    var pagerIndex = -1; 
    var blah = $("#currentPage").text(); 
    if (!blah) { 
     return pagerIndex; 
    } 
    var test = blah.indexOf("o"); 
    if (!test) { 
     return pagerIndex; 
    } 
    var trimmedString = $.trim(blah.substring(4, test)); 
    if (!trimmedString) { 
     return pagerIndex; 
    } 

    //convert potential string into an integer 
    return +trimmedString; 
} 
0

你返回一個字符串,但我懷疑你」重新使用返回值,如數字。如果您試圖使用數字的值,而不是數字,您會得到NaN結果。

你的問題很可能是子字符串有點偏離。嘗試調整子字符串數字。如果你提供了預期的輸入字符串,$("#currentPage").text(),我可以在那裏提供一些幫助。