这是我的功能,这有效:
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();
我不想声明一个全局变量,所以如果我正在做的事情是坏事,那么传递这个值的更好方法是什么?
答案 0 :(得分:0)
索引可能被解释为字符串而不是整数。你在哪里NaN
?对于index
?
您可以尝试显式返回一个整数,并且您可能希望测试瞬态变量(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;
}
答案 1 :(得分:0)
你正在返回一个字符串,但我怀疑你正在使用返回值,就像一个数字。如果你试图像数字一样使用这个值,而不是数字,你就会得到NaN的结果。
您的问题很可能是子字符串有点偏。尝试稍微调整子字符串数字。如果您提供预期的输入字符串$("#currentPage").text()
,我可以在那里提供一些帮助。
答案 2 :(得分:0)
实际问题是我的功能被无序调用。在创建寻呼机的表之前调用setTablepagerIndex ...