繁体   English   中英

跟踪多个选择选项的先前值

[英]Track previous value of multiple select option

我有这三个select ,我想保存所有先前选择的选项,使用each ,我已经为其中一个完成了,但是有没有办法针对每个选项使用相同的代码吗? 例如,使用each

的jsfiddle

 $(function() { var previous; $('#dropdown1').focus(function(e) { previous = $(this).val(); }); $('#dropdown1').change(function(e) { alert("previous value = " + previous + ", current value = " + $(this).val()); previous = $(this).val(); }); }); 
 <script src="https://code.jquery.com/jquery-1.9.1.js"></script> <script src="https://code.jquery.com/ui/1.10.2/jquery-ui.js"></script> <select id="dropdown1"> <option>10</option> <option>20</option> <option>30</option> </select> <select id="dropdown2"> <option>40</option> <option>50</option> <option>60</option> </select> <select id="dropdown3"> <option>70</option> <option>80</option> <option>90</option> </select> 

使用数组为每个选择保持先前的值。 并修改更改和焦点以定位所有选择元素,并从数组中引用/修改它们各自的先前值:

var previous=[];
var selectelements = $('select');
$('select').focus(function(e){
   previous[$('select').index(this)] = $(this).val(); 
});

$('select').change(function(e){
    alert("previous value = " + previous[$('select').index(this)] + ", current value = " + $(this).val());
    previous[$('select').index(this)] = $(this).val();
});

工作演示

使用class选择器代替ID

 $(function(){ var previous; $('.ddl').focus(function(e){ previous = $(this).val(); }); $('.ddl').change(function(e){ alert("previous value = " + previous + ", current value = " + $(this).val()); previous = $(this).val(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="dropdown1" class="ddl"> <option>10</option> <option>20</option> <option>30</option> </select> <select id="dropdown2" class="ddl"> <option>40</option> <option>50</option> <option>60</option> </select> <select id="dropdown3" class="ddl"> <option>70</option> <option>80</option> <option>90</option> </select> 

尝试使用数组

$(function() {
    var previous = [];

    $('#dropdown1').focus(function(e) {
        var data = $(this).val();
        previous.push(data);
    });
});

现在所有更改都将保留在您previous

更新:如果要检索最后一个索引

$('#dropdown1').change(function(e) {
     var last_index_value = previous[previous.lenght];
     alert("previous value = " + last_index_value + ", current value = " + $(this).val());
     previous.push($(this).val());

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM