2016-03-16 3 views
1

Я хочу, чтобы добавить класс в выбранные теги, чтобы я мог стилизовать их разными цветами. Есть ли способ сделать это? В качестве примера видит следующее:jQuery select2 добавить класс к выбранным элементам

enter image description here

Так что, если я хотел все теги категории, чтобы быть зелеными, все теги места быть синими и любым ключевым слово тегами быть красными, как бы я это сделать. Я попытался с помощью опции templateSelection так:

$('select').select2({ 
    templateSelection: function(item) 
    { 
     return '<span class="green">' + item.text + '</span>'; 
    } 
}); 

Но HTML получает бежал так что она показывает фактические символы вместо этого. Плюс это не добавило бы класс к самому тегу.

+0

Может вам не использовать css? '.location {background-color: # 00F; } ' – amflare

+0

Я мог бы, если бы у них было место класса на них. Это то, что я прошу, как применить класс к этим элементам, чтобы потом их стиль. – geoffs3310

+0

Просто используйте событие select. – dfsq

ответ

1

Вы можете использовать это templateSelection, а затем поиск, если это местоположение или ключевое слово, и добавить escapeMarkup недвижимость:

function template(data, container) { 
    if(/Location\:/.test(data.text)) { 
    return '<span class="location">'+data.text+'</span>'; 
    } else { 
    return data.text; 
    } 
} 

$('select').select2({ 
    templateSelection: template, 
    escapeMarkup: function(m) { return m; } 
}); 

Пожалуйста, смотрите его работы:

https://jsfiddle.net/cz4ofkvg/1/

+0

Не нужно ли ему называть 'template ($ (this))'? – amflare

+0

Атрибуты передаются по критерию refference, а не обязательно переопределяют их. –

+0

* «Я попытался использовать параметр templateSelection ... но HTML-код ускользает, поэтому вместо него отображаются фактические символы». * – dfsq

Смежные вопросы