Javascript数组选择选项

时间:2014-12-08 11:32:59

标签: javascript jquery asp.net-mvc

我的Javascript代码有问题,我有select并且我在数组中添加所选选项的值(例如Volvo)但是当用户更改所选选项时(例如Lamborghini) 。我想删除数组中最后选择的选项,并在其中添加最新选项。

我该怎么做?

有关信息,我有多个选择选项,我调用函数changeClass()

感谢您的帮助

我的HTML代码

   <select class="form-control" id="car" onchange="changeClass(this)">
    <option value="1">Volvo</option>
    <option value="2">VW</option>
    <option value="3">Lamborghini</option>
    </select>

我的Javascript代码

<script>
    var data = [];
    function changeClass(select) {
        data.push(select.value);
    }
</script>

4 个答案:

答案 0 :(得分:0)

您可以通过将数组重新定义为空数组来清空数组:

function changeClass(select) {
 data = []; 
 data.push(select.value);
}

答案 1 :(得分:0)

在常用的select函数中使用它,它会将所有选中的值都放到一个数组中

   var data;
   $("select").change(function () {
        data = $("select").map(function () {
            return this.value;
        }).get();
        console.log(data)
    });

<强> DEMO

答案 2 :(得分:0)

只需使用splice将最后一个元素替换为新元素:

var arr = ["aaa", "bbb", "ccc"];

arr.splice(arr.length - 1, 1, "ddd");

console.log(arr);

日志:

["aaa", "bbb", "ddd"]

答案 3 :(得分:0)

如果在新项目之前添加了该项目,那么您可以执行以下操作:

<script>
  var data = [];
  function changeClass(select) {
    data.pop();
    data.push(select.value);
  }
</script>

如果您希望删除之前未添加的项目,则必须使用事件onfocus,抓取之前选择的值并在onchange事件触发时将其删除。