Удаление параметра из 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, время: 23:27. |