首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery更改url查询字符串值

问使用jQuery更改url查询字符串值
EN

Stack Overflow用户
提问于 2013-06-20 18:50:25
回答 2查看 133.3K关注 0票数 32

我有一个示例URL,如:

http://domain.com/Documents/?page=1&name=Dave&date=2011-01-01

查询字符串包含当前页码和两个附加筛选器(名称和日期)。

使用下面的网址解析器:https://github.com/allmarkedup/purl,我能够访问网址的某些部分,例如只访问页码。

我正在尝试创建一种方法,让用户能够在文本框中键入一个数字,然后加载该页码,同时保持所有其他查询字符串不变。

代码语言:javascript
复制
$(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刷新页面。

是否可以更改参数的值,然后将其重新添加进来?

注意:额外的参数可以是任何东西,所以我不能手动将它们添加到具有新页码的路径名中!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-20 19:03:40

不带参数的purls $.params()将为您提供参数的键值对象。

jQuerys $.param()将从提供的对象/数组构建查询字符串。

代码语言:javascript
复制
var params = parsedUrl.param();
delete params["page"];

var newUrl = "?page=" + $(this).val() + "&" + $.param(params);

更新

我不知道为什么我在这里使用delete ...

代码语言:javascript
复制
var params = parsedUrl.param();
params["page"] = $(this).val();

var newUrl = "?" + $.param(params);
票数 34
EN

Stack Overflow用户

发布于 2013-06-20 19:04:45

如果您只需要修改page num,您可以替换它:

代码语言:javascript
复制
var newUrl = location.href.replace("page="+currentPageNum, "page="+newPageNum);
票数 58
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17211736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档