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'));