我有一个示例URL,如:
http://domain.com/Documents/?page=1&name=Dave&date=2011-01-01
查询字符串包含当前页码和两个附加筛选器(名称和日期)。
使用下面的网址解析器:https://github.com/allmarkedup/purl,我能够访问网址的某些部分,例如只访问页码。
我正在尝试创建一种方法,让用户能够在文本框中键入一个数字,然后加载该页码,同时保持所有其他查询字符串不变。
$(document).ready(function () {
$('.pageNum').live('keyup', function (e) {
e.preventDefault();
if (e.which == 13) {
var currentUrl = window.location.href;
var parsedUrl = $.url(currentUrl);
var currentPageNum = parsedUrl.param('page');
var newPageNum = $(this).val();
var newUrl = //
window.location.href = newUrl;
}
});
});因此,当用户在pageNum文本框上点击return时,它将获得当前页面的url,对其进行解析,然后找到当前的页码,然后我需要一种方法来用文本框中的新值替换页码的值来创建一个新的url,最后使用这个新的url刷新页面。
是否可以更改参数的值,然后将其重新添加进来?
注意:额外的参数可以是任何东西,所以我不能手动将它们添加到具有新页码的路径名中!
发布于 2013-06-20 19:03:40
不带参数的purls $.params()将为您提供参数的键值对象。
jQuerys $.param()将从提供的对象/数组构建查询字符串。
var params = parsedUrl.param();
delete params["page"];
var newUrl = "?page=" + $(this).val() + "&" + $.param(params);更新
我不知道为什么我在这里使用delete ...
var params = parsedUrl.param();
params["page"] = $(this).val();
var newUrl = "?" + $.param(params);发布于 2013-06-20 19:04:45
如果您只需要修改page num,您可以替换它:
var newUrl = location.href.replace("page="+currentPageNum, "page="+newPageNum);https://stackoverflow.com/questions/17211736
复制相似问题