Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从选定的multiselect插件中获取最后一个选定项_Javascript_Jquery_Jquery Chosen - Fatal编程技术网

Javascript 如何从选定的multiselect插件中获取最后一个选定项

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

正如问题所说,我想知道如何从selected multiselect插件中获取最后一个selected项的值

到目前为止,我有:

$(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函数在单击时不会触发。也许它与包含在文档就绪函数中有关?