Добавление атрибутов "data-" с помощью select2

Я видел много примеров тегов параметров Select2, установленных с атрибутами "data-", и я хотел бы сделать это.

Я использую ajax для получения данных. Я получаю ID и TEXT, необходимые для сборки select.

Но как я могу добавить к нему дополнительные атрибуты?

Я просто не нашел способ добавить их.

$(element).select2({
    placeholder: 'Select one...',
    width: '100%',
    minimumInputLength: 2,
    ajax: {
        url: '/my/url',
        dataType: 'json',
        data: function(params) {
            return {
                q: params.term,
                page: params.page
            };
         },
         processResults: function(data, page) {
             console.log(data);
             return {
                 results: data
             };
         },
         cache: true
     }
 });

Ответ 1

Это решение применяется к Select2 версии 4.0 или выше.

Предполагая, что атрибуты, о которых вы говорите, загружены в массив, вы возвращаетесь в processResults. Например, если вы выбираете запись типа ('id': 1, 'text': 'some-text', 'custom_attribute': 'hello world')

Затем в событии изменения вы можете:

data=$("#selector").select2('data')[0];
console.log(data.custom_attribute);//displays hello world

Надеюсь, что это поможет.

Ответ 2

Я не уверен, что именно вы спрашиваете, но если вы хотите добавить атрибут данных, вы можете сделать это следующим образом.

В JQuery:

$(element).attr('data-info', '222');

В javascript:

document.getElementById('elementId').setAttribute('data',"value: 'someValue'");