【问题标题】:Return selected values on change and not repeat on un-select在更改时返回选定的值,并且在取消选择时不重复
【发布时间】:2020-08-31 19:30:42
【问题描述】:

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

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']

每次更改时,我可以只取回选定的元素吗?

【问题讨论】:

    标签: javascript jquery arrays ecmascript-6 dropdown


    【解决方案1】:

    您只需要在函数内部重置yo 数组。目前,该数组仅声明一次,然后您继续向它推送。

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

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

    【讨论】:

      【解决方案2】:

      你可以这样做。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-21
        • 1970-01-01
        • 2017-09-03
        • 1970-01-01
        • 2014-12-05
        • 2017-09-10
        • 2023-03-09
        • 1970-01-01
        相关资源
        最近更新 更多