JQuery的。选择多个获取取消选择的内容

时间:2015-11-18 14:57:06

标签: jquery

我知道如何在JQuery中获取所选元素的列表:

    var foo = [];
    $("#ddis").change(function() {
        $('#ddis :selected').each(function(i, selected){
            foo[i] = $(selected).text();
            console.log(i+"-"+$(selected).text());
        });
    });

有:

<select id="ddis" name="numbers" multiple="multiple" size="5">
                            <option value="01908298600" selected="selected">01908298600</option><option value="01908298601" selected="selected">01908298601</option><option value="02070079003">02070079003</option><option value="02070079008" selected="selected">02070079008</option><option value="02077239151">02077239151</option><option value="02077239157">02077239157</option>
                        </select>

但实际上我需要知道每次有人点击元素时选择或取消选择的内容。喜欢:“数字01908298600被取消选择”,但现在我只是迭代所有选择而不是得到不同的东西。

2 个答案:

答案 0 :(得分:1)

您可以通过存储选择的先前值和当前值来使用此类逻辑。

var current = false;
$("#ddis").change(function() {

       if(current)
            console.log(current+" got deselected");

       var _val =  $(this).val();
       console.log(_val+" got selected");
       current = _val;

});

答案 1 :(得分:1)

    var foo = [];
    $("#ddis").change(function() {
        var newFoo = [];
        $('#ddis :selected').each(function(i, selected){
            newFoo[i] = $(selected).text();
            if( foo.indexOf( $(selected).text() ) == -1 ) {
                alert( "Selected " +$(selected).text() );
            }
        });
        foo = newFoo;
    });

JSFIDDLE