我有一个过滤器页面,我得到了所有过滤器并设置为数组。
$('.content-items:checkbox:checked').each(function () {
var name = $(this).attr('name');
if (name.slice(-2) === '[]') {
name = $(this).attr('name').slice(0, -2);
if (typeof params[name] === 'undefined') {
params[name] = [];
}
params[name].push($(this).val());
} else {
params[name] = $(this).val();
}
});
我有一个过滤器数组,例如cat[2]{"7","3"},fac[1]{"1"}
。
我想将其转换为查询字符串,并更改url。
/ product?cat [0] = 7&cat [1] = 3&fac [0] = 1
答案 0 :(得分:0)
在创建临时对象以存储数组名称后,使用map
和join
:
const cat = ["7", "3"];
const fac = ["1"];
const obj = { cat, fac };
const res = "/product?" + Object.entries(obj).map(([k, v]) => v.map((e, i) => `${k}[${i}]=${e}`).join("&")).join("&");
console.log(res);
答案 1 :(得分:0)
假设所有复选框都在表单内,则只需调用var urlString = $("{selector-for-Form}").serialize()
即可。这将为您节省很多麻烦,here
是它的Api文档。