jQuery select2 将 class 添加到所选项目

jQuery select2 add class to selected items

我希望能够将 class 添加到选定的标签,以便我可以为它们设置不同的颜色。有没有办法做到这一点?例如,请参见以下内容:

因此,如果我希望任何类别标签为绿色,任何位置标签为蓝色,任何关键字标签为红色,我该怎么做。我试过像这样使用 templateSelection 选项:

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

但是 HTML 被转义了,所以它显示了实际的字符。另外,这不会将 class 添加到标签本身。

您可以使用 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/