如何为动态创建的jquery select2设置属性?

如何为动态创建的jquery select2设置属性?,jquery,twitter-bootstrap-3,jquery-select2,Jquery,Twitter Bootstrap 3,Jquery Select2,我正在创建一个jquery select2,它是一个基于jquery的选择框替换,并通过$.post动态加载选项 我想添加动态数据。每个选项的属性,但我不知道如何 这就是我所拥有的: $("#pa_billSchedule").select2({ data: myResults }).select2('val', []); 其中myResults是从标准格式的$.post返回的数据:id:,text:您可以通过$.change事件来实现这一点。选中此项: 您将如何处理这些数据属性?我这

我正在创建一个jquery select2,它是一个基于jquery的选择框替换,并通过$.post动态加载选项

我想添加动态数据。每个选项的属性,但我不知道如何

这就是我所拥有的:

$("#pa_billSchedule").select2({
    data: myResults
}).select2('val', []);
其中myResults是从标准格式的$.post返回的数据:id:,text:

您可以通过$.change事件来实现这一点。选中此项:


您将如何处理这些数据属性?我这样问是因为也许你可以直接将这些属性添加到数据JSON中,然后你会得到类似{id:,text:,dataCustom:}嗨,米尔兹,谢谢你的回复。这就是我想要做的,我在JSON中添加了一个dataCustom,并希望应用于该选项。我希望当有人选择该选项时,它将使用该信息来定义另一个字段中的行为,并在表单的另一个字段中进行计算。它就像一个符咒!我不知道变量在你加载后会一直存在,所以我试着让它在加载时工作!!谢谢你,米尔兹,太完美了!我在JSFIDLE上注意到的一件事是,它在加载select2时不会进行检查,只有在您选择另一个选项,然后返回并再次选择它时,它才会说第一个选项被选中。我们如何使其验证,包括何时加载?再次感谢你!如果要自动选择第一个选项,必须设置。选择“val”,1。除此之外,为了让代码运行,您需要在初始化select2之后触发更改事件。请访问我进行这些更改的地方。如果此答案对您有用,请将其标记为已接受答案。谢谢,嗨,米尔兹!你真的帮了我,解释得很清楚!再次感谢还有一个问题,我想知道如果您不知道第一个的id,如果它是从数据库中动态提取的,您如何设置它?
<input type="hidden" name="pa_billSchedule" id="pa_billSchedule" />
<script>
$(document).ready(function() {
    $("#pa_billSchedule").select2({
       // this is for testing purposes. You should use `myResults`
       data: [
        {id: 1, text: 'first', customData: 'red'},
        {id: 2, text: 'second', customData: 'green'},
        {id: 3, text: 'third', customData: 'blue'}
       ]
    }).select2('val', [])
    .on('change', function() {
        // and this is where you get the custom attribute
        if ($(this).select2('data').customData == 'red') {
            alert('the first option was selected');
            // do what you need
        }
    });
});
</script>