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。我的函数被调用出了问题。。。