在多个选择框中获取最近的选择

时间:2011-10-03 11:32:40

标签: javascript jquery drop-down-menu

我想根据多个选择框选择填充内容。 我可以获得选择框的所有选定值。 使用

$('select').change(function(){
   console.info($(this).val()) // it gives me array
});

但我只想要最近的选择/取消选择用户。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

function arr_diff(a1, a2) {
    var a = [],
        diff = [];
    for (var i = 0; i < a1.length; i++)
    a[a1[i]] = true;
    for (var i = 0; i < a2.length; i++)
    if (a[a2[i]]) delete a[a2[i]];
    else a[a2[i]] = true;
    for (var k in a)
    diff.push(k);
    return diff;
}
var oldSelect = [];
$('select').change(function() {
    var changes = arr_diff(oldSelect, $(this).val());
    console.info(changes); // it gives me array
    oldSelect = $(this).val();
});

更改仅包含选定/取消选择的元素

在这里摆弄http://jsfiddle.net/j5rBS/

P.S。您应该接受一些答案,因为您的录取率非常低

答案 1 :(得分:0)

简单只需在选择时获取数组的第一个索引。

$(function(){
$('select').change(function(){
   var opt=$(this).val();
    $("span").text(opt[0]);
});
})

http://jsfiddle.net/jMw92/10/

答案 2 :(得分:0)

试试这个

// this will set the last selected or deselected option element's value to the select element as a custom attribute "recent" 
$("#selectEl option").click(function(event) {
   $(this).parent().attr("recent", $(this).val());
});


$("#selectEl").attr("recent"); // returns the last selected/deselected option value or undefined if attribute recent is not present