Javascript 为每个选项选择2个手动设置选项属性

Javascript 为每个选项选择2个手动设置选项属性,javascript,jquery,ajax,jquery-select2,Javascript,Jquery,Ajax,Jquery Select2,我有选择2下拉列表,如: <select class="form-control validateblank txtSelectChallan" id="txtSelectChallan" /> 我会得到下拉列表,比如: <select class="form-control validateblank txtSelectChallan select2 hidden-accessible" id="txtSelectChallan" tabindex="-1" aria-h

我有
选择2
下拉列表,如:

 <select class="form-control validateblank txtSelectChallan" id="txtSelectChallan" />
我会得到
下拉列表
,比如:

<select class="form-control validateblank txtSelectChallan select2 hidden-accessible" id="txtSelectChallan" tabindex="-1" aria-hidden="true" multiple="">
  <option value="1006">123123</option>
  <option value="1007">32123</option>

但是我无法获得
选项
属性的值。我不知道如何在
select2
中为所有
选项
设置自定义属性?

在foreach循环中这样尝试,然后设置触发器

var data = {
id: challn.MaterialSheet_ID,
text: challn.Challan_No
};

var newOption = new Option(data.text, data.id, false, false);
$('#txtSelectChallan').append(newOption).trigger('change');

或者,您可以在结果集的循环中这样做
var option=”“+challn.Challan\u No+”

这就是Select2官方网站对自定义数据字段的定义

$('#mySelect2').select2({
// ...
templateSelection: function (data, container) {
// Add custom attributes to the <option> tag for the selected option
$(data.element).attr('data-custom-attribute', data.customValue);
return data.text;
}
});

// Retrieve custom attribute value of the first selected element
$('#mySelect2').find(':selected').data('custom-attribute');
$('mySelect2')。选择2({
// ...
模板选择:函数(数据、容器){
//将自定义属性添加到选定选项的标记中
$(data.element).attr('data-custom-attribute',data.customValue);
返回data.text;
}
});
//检索第一个选定元素的自定义属性值
$('#mySelect2')。查找(':selected')。数据('custom-attribute');

您使用的是哪个版本我使用了Select2 4.0.3如果没有帮助,那么您可以简单地使用字符串创建一个html标记,并通过html标记传递要添加的参数和值Show??好的,但在链接中,您提供了他们的答案,我无法理解。检查此小提琴,您可以看到添加了自定义数据,并且在更改时可以与之匹配自定义数据当该值为红色时,也请检查此官方select2站点是否存在相同的内容:
var data = {
id: challn.MaterialSheet_ID,
text: challn.Challan_No
};

var newOption = new Option(data.text, data.id, false, false);
$('#txtSelectChallan').append(newOption).trigger('change');
$('#mySelect2').select2({
// ...
templateSelection: function (data, container) {
// Add custom attributes to the <option> tag for the selected option
$(data.element).attr('data-custom-attribute', data.customValue);
return data.text;
}
});

// Retrieve custom attribute value of the first selected element
$('#mySelect2').find(':selected').data('custom-attribute');