嗨,我正在创建这样的动态过滤器
过滤器1——属性1——属性2——财产3
过滤器2——属性1——属性2——财产3
这就是代码
var js_filter = {};
var creators_cat = [];
$('.filter-item input').on('change',function (e) {
var filter_type = $(this).attr('name');
var filter_term = $(this).val();
creators_cat.push( filter_term );
js_filter["'"+filter_type+"'"] = creators_cat;
console.log(js_filter);
})
这就是我得到的响应
{'filter-product_cat[]': Array(4), 'filter-brands': Array(4)}
'filter-brands': (4) ['32', '29', '23', '36']
'filter-product_cat[]': (4) ['32', '29', '23', '36']
[[Prototype]]: Object
如你所见,数组键是动态添加的,但两个键的值是相同的。
我需要分别添加这些。我一直在寻找答案,但没有找到类似的答案。
感谢您的帮助。
不应该使用全局数组。每个过滤器输入都应该有自己的值数组。
检查当前filter_type是否已经存在js_filter
对象的元素。如果不是,则将其创建为空数组。然后将当前值压入数组。
$('.filter-item input').on('change', function(e) {
var filter_type = $(this).attr('name');
var filter_term = $(this).val();
if (!js_filter[filter_type]) {
js_filter[filter_type] = [];
}
js_filter[filter_type].push(filter_term);
console.log(js_filter);
})