[英]Track previous value of multiple select option
我有这三个select
,我想保存所有先前选择的选项,使用each
,我已经为其中一个完成了,但是有没有办法针对每个选项使用相同的代码吗? 例如,使用each
。
$(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.