Подтвердить что ты не робот

Измените значение строки запроса url с помощью jQuery

У меня есть пример URL, например:

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

Строка запроса содержит текущий номер страницы и два дополнительных фильтра (имя и дата).

Использование следующего парсера URL: https://github.com/allmarkedup/purl Я могу получить доступ к определенным частям 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, он получает текущий url страницы, анализирует его, затем узнает номер текущей страницы, а затем мне нужен способ заменить значение номера страницы на новое значение в текстовом поле для создания нового URL-адреса, а затем, наконец, обновите страницу с помощью этого нового URL-адреса.

Можно ли изменить значение параметра, а затем добавить его обратно?

Примечание. Дополнительные параметры могут быть любыми, поэтому я не могу вручную добавить их на путь с новым номером страницы!

4b9b3361

Ответ 1

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);

Ответ 2

Если вам нужно только изменить номер страницы, который вы можете заменить:

var newUrl = location.href.replace("page="+currentPageNum, "page="+newPageNum);