使用select2进行多选时,通过$(‘select’).val()赋予的值或者获取的值并不是按照我选择的先后顺序进行展示和返回,而是按照select中option的渲染顺序进行展示和返回,这在我的业务中不满足,需要进行优化。
解决方案:使用data进行赋值和获取值可以得到想要的效果。
关于取值
// 通过data获取将返回一个结果集,在循环里面处理数据即可
$("#opt").select2('data').forEach(function (item) {
console.log(item.id, item.text);
})
关于赋值
// 通过data进行赋值可以保持指定的顺序
$("#opt").select2('data', [{"text": "选项5", id: "5"}, {"text": "选项2", id: "2"}])
发表回复