Удаление параметра из URL
Всем привет.
Помогите новичку пожалуйста :help: Есть функция которая при клике добавляет get параметр
function setAttr(prmName,val){
var res = '';
var d = location.href.split("#")[0].split("?");
var base = d[0];
var query = d[1];
if(query) {
var params = query.split("&");
for(var i = 0; i < params.length; i++) {
var keyval = params[i].split("=");
if(keyval[0] != prmName) {
res += params[i] + '&';
}
}
}
res += prmName + '=' + val;
window.location.href = base + '?' + res;
return false;
}
<a href="#" onclick="return delAttr('parametr','value')">Test</a>
Кликаем и к адресу добавляется нужный get параметр. Нужно его обратное действие, то есть если такой параметр в адресе имеется, то он его уберет из урла... Типа чекбокса есть галка нет галки... Очень нужно |
Цитата:
var url='site.ru?prm1=1&prm2=2&prm3=3';
alert(delPrm(url,'prm1'));
alert(delPrm(url,'prm2'));
alert(delPrm(url,'prm3'));
function delPrm(Url,Prm) {
var a=Url.split('?');
var re = new RegExp('(\\?|&)'+Prm+'=[^&]+','g');
Url=('?'+a[1]).replace(re,'');
Url=Url.replace(/^&|\?/,'');
var dlm=(Url=='')? '': '?';
return a[0]+dlm+Url;
};
|
function delAttr_rcl(prmName,val){
var res = '';
var d = location.href.split("#")[0].split("?");
var base = d[0];
var query = d[1];
if(query) {
var params = query.split("&");
for(var i = 0; i < params.length; i++) {
var keyval = params[i].split("=");
if(keyval[0] !== prmName) {
res += params[i];
}
}
}
return base + '?' + res;
}
Отличие небольшое! Просто на выводе не добавляем амперсанд и параметр этот со значением и всё |
|
| Часовой пояс GMT +3, время: 11:35. |