JS: добавление переменной в URL без повторения

Возможный дубликат:
Изменить параметры URL с помощью jQuery?

В настоящее время у меня есть тег <div>, который выглядит как кнопка и изменяет URL-адрес с помощью функции onClick, которая перенаправляет на ту же страницу, просто добавляет &view_all=Yes или &view_all=No к URL-адресу.

<div onclick="javascript:window.location.href = 'page.php?action=list-volunteer-apps&view-all=No';">Hide Closed Applications</div>

Ну, я добавляю новую функцию на веб-сайт, и мне нужно добавить это значение &view_all=Yes или &view_all=No в конец URL-адреса вместо того, чтобы перенаправлять их, потому что у меня будут другие переменные в URL-адресе что я не могу проиграть.

Я выяснил способ сделать append, но он продолжает добавлять переменные &view_all в конец URL-адреса, поэтому он выглядит как page.php?action=list-volunteer-apps&view-all=No&view_all=Yes&view_all=No.

Так я делаю append: onclick="javascript:window.location.assign(window.location.href+='&view-all=No');"

Ответ 1

Вы можете использовать регулярное выражение для замены значения в строке:

$(this).attr("onclick", function(i, val) {
    return val.replace(/view-all=(Yes|No)/, function() {
        return "view-all=" + ((arguments[1] || "") == "Yes" ? "No" : "Yes");
    });
});