我正在尝试将变量传递给jquery ajax请求:
$(document).ready(function() {
// get page number
var page = parseInt(getUrlParameter('page'));
if (page < 1) page = 1;
var page_next = page + 1;
$.ajax({
type: "GET",
data: {
page: page,
},
dataType: 'json',
...
不幸的是变量&#34; page&#34;似乎没有出现在ajax请求中。做一个cosole.log(页面);内心的讽刺&#34; NaN&#34;作为一种价值。
问题似乎是
if (page < 1) page = 1;
如果通过get检索到的值不存在,则页面将为NoN。
如何确保页面始终定义为最小1?
答案 0 :(得分:1)
您的getUrlParameter
正在返回一些无法转换为数字NaN = Not a Number
的内容,如果您共享该功能,我们可能会进一步调试您的问题的根本原因,与此同时,我建议进行以下验证:
var page = parseInt(getUrlParameter('page'));
if (page < 1 || isNaN(page)) page = 1;
var page_next = page + 1;
这样,如果您的页面不是数字,则将其默认为第1页。 希望这可以解决问题并帮助你。
答案 1 :(得分:1)
如果您的问题在if语句中,我能考虑的最快解决方案(尽管我不赞成)是这样的:
替换:
var page = parseInt(getUrlParameter('page'));
使用:
var page = +getUrlParameter("page") || 1;
如果页面为假(NaN为假),则将其设置为1,否则为其结果。
小提琴的例子:
function getUrlParameter ( param ) {
return param === "page" ? 5 : false;
}
var page = +getUrlParameter("hello") || 1;
alert(page);
page = +getUrlParameter("page") || 1;
alert(page);
无论如何,你应该尝试修复你的getUrlParameter函数而不是试图避免它的输出,但这只是我的意见。