Javascript 如何从选定的multiselect插件中获取最后一个选定项
正如问题所说,我想知道如何从selected multiselect插件中获取最后一个selected项的值 到目前为止,我有:Javascript 如何从选定的multiselect插件中获取最后一个选定项,javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,正如问题所说,我想知道如何从selected multiselect插件中获取最后一个selected项的值 到目前为止,我有: $(document).ready(function() { $('#id').chosen().on('change', function(evt, param) { var id1 = this.value; var id2 = $("#id").chosen().val(); var
$(document).ready(function() {
$('#id').chosen().on('change', function(evt, param) {
var id1 = this.value;
var id2 = $("#id").chosen().val();
var id3 = $('#id', this).filter(':selected:last').val();
var id4 = $(evt.target).text();
alert('IDs:' +id1+'-'+id2+'-'+id3+'-'+id4);
});
});
以下是输出:
2 - undefined - undefined - [all the values]
第一个答案是正确的,我选择了第二个值
但是,如果我以后选择第三个值或之前选择的值之后的值,它会不断显示我选择的第一个值。然而,如果我选择了一个位于第一个值之前的值,它就会完美地工作,我不知道为什么
任何帮助都会很好 编辑:
这应该起作用:
$('option').click(function(){
var option = $(this);
var str = "";
$("#id option:selected" ).each(function() {
if (option.val()==$(this).val()){
alert (option.val());
}
});
});
请参见。this.value只是DOM中所有选定值中的第一个,它与您选择它们的顺序无关。是的,我可以看到那个酒吧招待,谢谢您的澄清:有没有一种方法可以让我们真正获得最后选择的值?对于常规的多选,您可以通过单击所有元素的处理程序来实现。可能需要对Selected进行一些修改,因为选项被DIVs替换。好的,这是一种方法,但是为了代码效率,是否可以对来自事件的对象执行一些操作?evt和param?据我所知不是。对象只有multiselect的当前状态,它只是一个选定元素的列表。浏览器没有跟踪它们被选择的顺序,为什么要这样做?感谢Albus Shin的回答,但是.click函数在单击时不会触发。也许它与包含在文档就绪函数中有关?