Добавление атрибутов "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'");