【发布时间】:2011-08-31 15:22:50
【问题描述】:
我的 JavaScript 基本上如下所示
function a() {
b(1);
}
function b(myNumber) {
c(myNumber);
}
function c(myNumber) {
var calculation = 5 * (myNumber - 1);
alert(calculation);
}
当我调用函数a() 时,警告框最终会显示“NaN”。为什么会这样?我已经尝试在很多地方使用parseInt() 函数,但似乎没有任何效果。
编辑
完整代码(实际执行的操作,而不是精简示例):
function updateTablePagination(tableId, rowsPerPageSelectId) {
updateTablePagination(tableId, rowsPerPageSelectId, 1);
}
function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
var table = document.getElementById(tableId);
var rowsPerPageSelect = document.getElementById(rowsPerPageSelectId);
var rowsPerPage = rowsPerPageSelect.options[rowsPerPageSelect.selectedIndex].text;
updateTable(table, rowsPerPage, pageNumber);
//updateTablePageLinks();
}
function updateTable(table, rowsPerPage, pageNumber) {
var tableRows = table.getElementsByTagName("tr");
var totalNumberOfRows = tableRows.length;
var startRow = rowsPerPage * (pageNumber - 1);
var endRow = Math.min(startRow + rowsPerPage, totalNumberOfRows - 1);
alert("Start: " + startRow + "\nEnd: " + endRow);
}
选择框有一个onchange 调用updateTablePagination('myTableId', 'rowsPerPage')。 id 都是正确的。
“开始”和“结束”都是 NaN。
编辑 2
或者,如果我只是做alert(pageNumber),它是未定义的。
简化
即使这样说pageNumber 是未定义的:
function updateTablePagination(tableId, rowsPerPageSelectId) {
updateTablePagination(tableId, rowsPerPageSelectId, 1);
}
function updateTablePagination(tableId, rowsPerPageSelectId, pageNumber) {
alert(pageNumber);
}
【问题讨论】:
-
我刚刚测试,我得到 0。jsfiddle.net/loktar/pqsVt
-
我在 Chrome 上收到
0。什么浏览器? -
您发布的示例没有任何问题。您需要发布其余代码。
-
我们需要查看实际代码。您在上面发布的代码中不会发生该错误。
-
对我来说,最新的 FF 提示 0。