Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery更改url查询字符串值_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery更改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

我有一个URL示例,如:

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和附加组件。