Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 更改时返回选定值,取消选择时不重复_Javascript_Jquery_Arrays_Ecmascript 6_Dropdown - Fatal编程技术网

Javascript 更改时返回选定值,取消选择时不重复

Javascript 更改时返回选定值,取消选择时不重复,javascript,jquery,arrays,ecmascript-6,dropdown,Javascript,Jquery,Arrays,Ecmascript 6,Dropdown,如何始终返回数组中的选定选项。更改时返回选定元素的新数组 let yo = []; $(`#filter`).on('change', function() { $('option:selected', this).each(function() { // console.log(this.value); yo.push(this.value); }); }); console.log(yo); 现在它返回: 在第一次选择时,我的结果是:['one'

如何始终返回数组中的选定选项。更改时返回选定元素的新数组

let yo = [];
$(`#filter`).on('change', function() {
   $('option:selected', this).each(function() {
        // console.log(this.value);
        yo.push(this.value);
   });
});
console.log(yo);
现在它返回:

在第一次选择时,我的结果是:
['one']
。 在第二次选择时,我得到:
['one','two']
。 在取消选择
two
时,我的结果是
['one','two','one']
。 在未选中的
two
上,如何使我的结果成为
['one']


每次更改时,我都可以取回所选元素吗?

您只需要重置函数中的
yo
数组。目前,数组只声明了一次,然后继续推进它

$(`filter`)。在('change',function()上{
yo=[];
$('option:selected',this).each(函数(){
//console.log(this.value);
推(这个值);
});
});

这应该可以提前工作,每次运行on change函数时,它都会在再次按下之前重置数组。

您只需重置函数中的
yo
数组即可。目前,数组只声明了一次,然后继续推进它

$(`filter`)。在('change',function()上{
yo=[];
$('option:selected',this).each(函数(){
//console.log(this.value);
推(这个值);
});
});

这应该可以提前工作,每次运行on change函数时,它都会在再次按下之前重置阵列。

您可以这样做

$(`#select`).on("change", function(e) {
  //$(this).val() will get an array of selected values
  console.log($(this).val());
});

你可以这样做

$(`#select`).on("change", function(e) {
  //$(this).val() will get an array of selected values
  console.log($(this).val());
});