2011-03-03 49 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(),我可以在那里提供一些帮助。