Удаление get переменной

174
25 октября 2018, 17:30

Стоит следующая задача, находясь на странице имеется n-ое количество get переменных, при нажатии на Del, необходимо остаться на данной странице, но удалить к примеру переменную name и соответственно ее значение. (адрес к примеру index?a=1&b=2&c=3&name=abc&vr=56).

Answer 1

Изменять URL находясь на той же странице можно при помощи History API, всё остальное - дело программной логики:

let params={},
order=[]
location.search.replace(/^\?/,'').split('&').forEach(pie=>{
    let [k,v]=pie.split('=')
    params[k]=v
    order.push(k)
})
$(document).keydown(e=>{
    if(!e.which==46||!order.length) return
    delete params[order.pop()]
    console.log(params)
    window.history.replaceState('','',location.origin+(order.length?'/?'+order.reduce((prev,cur)=>prev.concat(cur+'='+params[cur]),[]).join('&'):''))
})

Получать доступ к get переменным в этом примере вы можете через объект params. Если нужно разжевать написанное, то скажите, могу сдобрить код комментариями.

READ ALSO
Массивы – предзаполнение и заполнение

Массивы – предзаполнение и заполнение

У меня задача сделать плейсхолдеры для товаров на время загрузкиНе могу найти правильный подход

170
Что не так с JQ кодом?

Что не так с JQ кодом?

Захватываю левую кнопку, присваиваю ей класс chosen, одновременно убирая его в правой кнопкеЗахватываю правую кнопку, присваиваю тот же класс,...

182