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