Jquery multiple选择触发器更改

时间:2015-12-24 16:21:19

标签: javascript jquery

我有一个类别树,我在页面上使用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();
    }
}

1 个答案:

答案 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();
    });
}