我不确定这里发生了什么,但我以前从未见过这种情况。
我正在尝试获取选项标记的innerHTML,但我得到的是所有选定的文本值,而不是仅选择的那个。使用$(this).text()
为我提供了当前所有选项:
Bill MunsonAmy HernaiAlex Antistic
如果我使用像$("#emp option:selected").text()
这样的元素,它给了我当前选项,但是,如果我从选择中选择第二个名称,我不仅会看到当前选定的文本,还会看到来自之前的点击也是如此。
我不知道它是否重要,但所有选项都是用JQuery动态附加的。
如何才能同时获取当前所选项目而不是所有项目?
编辑:
$select.on('change', function(evt, params) {
var name = $("#emp option:selected").text();
alert(name); // outputs concatenated string of names
}
<select id="emp" class="chosen-select" multiple></select>
答案 0 :(得分:1)
您还可以使用以下代码获取multiple select element
中最后选择的选项文字: -
$(this).find("option:selected").last().text();
示例示例: -
$("#emp").on('change',function(){
console.log($(this).find("option:selected").last().text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="emp" multiple>
<option value="1">Bill</option>
<option value="2">MunsonAmy</option>
<option value="3">HernaiAlex</option>
<option value="4">Antistic</option>
</select>