我有一个类别树,我在页面上使用Jquery,在选择了上一个类别后生成一个新的类别选择。
我需要的是,如果我传递一个类别列表(彼此的祖先和孩子),使用代码执行值选择(将调用我之前编写的方法)。
以下是负责触发类别更改的代码:
$(document.body).on('change', '.category-select' ,function(event){
var select_rank = parseInt($(event.target).attr('rank'));
var current_category = event.target.value;
select_category(select_rank, current_category, true)
});
呈现页面时,会有代码创建第一个选择。然后在每个选择更改上 - select_category函数将呈现一个新的选择(如果该类别具有子类别)。
我在一个名为cat_list的数组中传递一个类别列表。如果设置了,我需要在最后一次选择时触发选择:
if(cat_list != null){
for(cat_id in cat_list){
$('.category-select').last().val(cat_id).change();
}
}
答案 0 :(得分:2)
您没有正确地迭代数组。在您的代码中,cat_id
是数组索引,而不是数组中的值。试试这个:
if (cat_list) {
var last_select = $('.category-select:last');
$.each(cat_list, function(i, cat_id) {
last_select.val(cat_id).change();
});
}