从函数返回值NaN

时间:2011-03-03 21:39:02

标签: 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。为什么这不起作用?我只是得到一个'NaN'

var index = Util.SetTablepagerIndex();

我不想声明一个全局变量,所以如果我正在做的事情是坏事,那么传递这个值的更好方法是什么?

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

实际问题是我的功能被无序调用。在创建寻呼机的表之前调用setTablepagerIndex ...