如何将文本附加到select2中的选定项目?

时间:2014-04-04 23:20:15

标签: javascript jquery dom jquery-select2

我正在尝试编辑select2的选定值。所以我做了这个简单的代码:

http://jsfiddle.net/rcky9/2/

HTML

<select id="sel" style="width: 100%">
    <option value="1">Hello</option>
    <option value="2">Friends</option>
    <option value="3">Stackoverflow</option>
</select>
<br><br>
<button id="addok">Add OK</button>

JS

$(document).ready(function () {

    $("#sel").select2();

    $("#addok").click(function() {
        actual_value = $("#sel").find(':selected').text();

        if (actual_value.indexOf(" OK") > -1){
            return
        }

        newtext = actual_value + " OK";

        // this works.
        $("#sel").find(':selected').text(newtext);

        // this does not works.
        $('#s2id_sel').find('.select2-choosen').text(newtext);
    });
});

如您所见,按下按钮后,看起来没有任何变化,但是如果您打开下拉列表,则会在当前项目中成功添加OK

当我尝试使用select2-choosen css类修改div中的实际值时,会出现问题。我不能通过这种方式访问​​它。

您有任何想法,建议或提示吗?

1 个答案:

答案 0 :(得分:2)

点击change()选择将显示附加的确定,您需要触发change()没有标识为s2id_sel和类.select2-choosen的元素,以便最后声明不会更改文本。

<强> Live Demo

$("#sel").find(':selected').text(newtext).change();