只从具有多个属性的HTML select中获取新添加和删除的选项?

时间:2014-06-04 07:07:34

标签: javascript jquery html select jquery-selectors

我的问题似乎很容易,但我无法理解。

Fiddle Demo

HTML:

<select multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>

jQuery的:

var choiceArr = [];
$('select').change(function () {
    var text = $(this).find('option:selected').text();
    choiceArr.push(text);
    console.log(choiceArr);
});

目前,如果我选择 Volvo Saab ,结果将是:

["Volvo", "VolvoSaab"]

我的预期结果是:

["Volvo", "Saab"]

当我从选择中删除 Saab 时,结果将是:

["Volvo", "VolvoSaab", "Volvo"] 

我的预期结果是:

["Volvo"]

那我怎么能实现呢?

2 个答案:

答案 0 :(得分:1)

<强> Demo

尝试

var choiceArr = [];
$('select').change(function () {

    choiceArr = $(this).find('option:selected').map(function () {
        return $(this).text();
    }).get();

    alert(choiceArr);
});

答案 1 :(得分:0)

试试这个

<select multiple="multiple" id="select1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<label id="result"></label>

的js

$('select').change(function () {
    var selValues = $.map($("#select1 option:selected"), function (temp) {
         return $(temp).text();
     });
     $("#result").text(selValues.join(", "));
});

<强> Fiddle