Javascript 函数返回值NaN

Javascript 函数返回值NaN,javascript,jquery,parameter-passing,Javascript,Jquery,Parameter Passing,这是我的功能,它起作用了: my.SetTablepagerIndex = function() { var blah = $("#currentPage").text(); var test = blah.indexOf("o"); var pagerIndex = $.trim(blah.substring(4, test)); return pagerIndex; } 然后,我把它分配给一个变量。为什么这不起作用?我刚得到一个“楠” var index

这是我的功能,它起作用了:

 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();

我不想声明全局变量,因此如果我所做的是一件坏事,那么传递此值的更好方法是什么?

可能是索引被解释为字符串而不是整数。你从哪里得到的
NaN
?对于
索引

您可以尝试显式返回一个整数,您可能希望测试瞬态变量(
blah
test
),以确保它们存在:

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;
}

您正在返回一个字符串,但我怀疑您使用的返回值与数字类似。如果你试图像数字一样使用这个值,但它不是一个数字,你会得到一个NaN结果


您的问题很可能是子字符串有点不正确。尝试稍微调整一下子字符串的数字。如果您提供预期的输入字符串,
$(“#currentPage”).text()
,我可以在那里提供一些帮助。

实际问题是调用我的函数时出现了问题。在创建寻呼机的表之前正在调用setTablepagerIndex…

我在这里没有看到任何会产生
NaN
。请发布导致此问题的实际代码。您是正确的,没有任何东西会导致NaN。我的函数被调用出了问题。。。