Javascript pass get params



I get exists get get params on request :

?filterBy=1,2,3

我如何在使用 js 过滤后传递参数?

我的解决方案:

switch(type) {
case 'status':
window.location.href = '?filter-status=i=' + filters;
break;
case 'oldFrom':
window.location.href = '?oldFrom';
break;
case 'oldTo':
window.location.href = '?oldTo';
break;
case 'newFrom':
window.location.href = '?newFrom';
break;
case 'newTo':
window.location.href = '?newTo';
break;
case 'catesel':
window.location.href = '?byCategory=' + filters;
break;
}

就我而言,我重写了获取参数。
示例:如果我根据要求存在参数:byCategory=1,2,3当我单击按钮按请求添加新过滤器时,将删除并写入新过滤器。我该怎么做:

?byCategory=1,2,3&newFrom......

我需要删除window.location.href或者传递如何存在获取参数?

要从您的 url 获取参数,请使用 URL 构造函数:

const url = new URL("?filterBy=1,2,3");
const filterBy = url.searchParams.get("filterBy");
console.log(filterBy);

如果您需要获取值数组,只需将其拆分为数组即可

const myArrOfFilters = filterBy.split(',');
console.log(myArrOfFilters);

使用URLSearchParams获取查询字符串值

var params = '';
var type = 'status';
var filters = '1,2';
switch (type) {
case 'status':
params = '?filter-status-i=' + filters;
break;
case 'oldFrom':
params = '?oldFrom';
break;
case 'oldTo':
params = '?oldTo';
break;
case 'newFrom':
params = '?newFrom';
break;
case 'newTo':
params = '?newTo';
break;
case 'catesel':
params = '?byCategory=' + filters;
break;
}
//window.location.href = params
var urlParams = new URLSearchParams(params);
console.log(urlParams.get('filter-status-i'));

最新更新