Jquery .text() 连接而不是替换

Jquery .text() concatenates instead of replaces

我有如下一段代码:

var customer = $('#customer');

customer.on('change', function(){
    var dom = $(customer.find('option'));
    var txt = dom.text();

    $('#settingsoption1label').show().find('span.mdl-radio__label').text(txt);
});

每当我更改使用 Select2 插件的 #customer 下拉菜单时,customer 元素中的文本就会连接而不是替换。我也尝试添加 empty()html('') 但到目前为止似乎没有任何效果。我希望将字符串替换为所选值而不是连接起来。现在,当我更改下拉列表时,下拉列表的值只是添加到 span 元素的末尾。

编辑

这是我的 HTML。我正在使用 Laravel.

<div class="form-group" >
    @if(Auth::user()->is(3) || Auth::user()->is(1))
    <label for="customer">Klant<br></label>
    <select id="customer" name="customer" class="searchselect searchselectstyle searchgroup1">
        @if(Request::old('customer') != NULL)
            <option value="{{Request::old('customer')}}">{{$customers->where('id', intval(Request::old('customer')))->first()->name}}</option>
        @endif
    </select>
    @endif
</div>

.text(): ...The result of the .text() method is a string containing the combined text of all matched elements. ....

因此,您可以尝试只获取选定的选项:

    var customer = $('#customer');

    customer.on('change', function(){
        var dom = customer.find('option:selected');
        var txt = dom.text();

        $('#settingsoption1label').show().find('span.mdl-radio__label').text(txt);
    });