If you want the icon to display, you need to target the HTML element and insert HTML not TEXT. pretty much like this:
$(document).ready(function () {
$("#sel").select2();
$("#addok").click(function() {
actual_value = $("#sel").find(':selected').text();
if (actual_value.indexOf(" <i class='fa fa-check'></i>") > -1){
alert("asd")
return
}
newtext = actual_value + "<i class='fa fa-check'></i>";
$("#s2id_sel").find('.select2-chosen').html(newtext);
});
});
See http://jsfiddle.net/S9tE3/
BUT. The HTML element you need to target, from what i can see, is $('s2id_'+[current element id]). s2 i guess for SELECT2 and id_. So your select is id="sel", which means $('s2id_sel')
. Also note that you need to find which one is chosen. It, conveniently enough, has a ".select2-chosen" class which makes it kinda easy to target.
This won't change the value, just the LOOK which is I think what you're exactly trying to do.
Hope that helps