Javascript 使用jQuery更改url查询字符串值
我有一个URL示例,如:Javascript 使用jQuery更改url查询字符串值,javascript,jquery,Javascript,Jquery,我有一个URL示例,如: http://domain.com/Documents/?page=1&name=Dave&date=2011-01-01 查询字符串包含当前页码和两个附加筛选器(名称和日期) 使用下面的URL解析器:我能够访问URL的某些部分,例如仅仅是页码 我试图为用户创建一种方法,使其能够在文本框中键入一个数字,然后加载该页码,同时保持所有其他查询字符串的完整性 $(document).ready(function () { $('.pageNum').live
http://domain.com/Documents/?page=1&name=Dave&date=2011-01-01
查询字符串包含当前页码和两个附加筛选器(名称和日期)
使用下面的URL解析器:我能够访问URL的某些部分,例如仅仅是页码
我试图为用户创建一种方法,使其能够在文本框中键入一个数字,然后加载该页码,同时保持所有其他查询字符串的完整性
$(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刷新页面
是否可以更改参数值,然后将其添加回
注意:附加参数可以是任何参数,因此我无法使用新页码手动将它们添加到路径名中不带参数的purls将为您提供参数的键值对象
jQuerys将从提供的对象/数组构建querystring
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);
如果只需要修改页面编号,则可以替换它:
var newUrl = location.href.replace("page="+currentPageNum, "page="+newPageNum);
事实上在许多情况下需要并发症。您的replace语句将替换
mypage
中mypage=1&page=1
@Nux中的值。您是对的,但问题是具体的,解决方案不是一般性的。如果您希望它更通用,可以使用两个替换,而不是一个:“?page=1”和“&page=1”。这并不适用work@kev,你的信息具有误导性。我测试了purl
,效果很好。URI规范是在2005年编写的,我不认为这个简单的解析需要大量的维护。如果需要更多,请克隆repo和附加组件。