跟踪多选选项的上一个值
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());
});
相关文章:
- 跟踪多选选项的上一个值
- 显示基于上一个se的选择的选择选项;选择
- jQuery UI 选项卡取消选择事件或在选择时保存上一个选项卡
- jQuery UI 选项卡 - 将参数设置为下一个/上一个按钮单击
- 单击上一个或继续按钮时更改选项卡样式
- 遍历下一个和上一个 jQuery 选项卡
- 从select中选择一个选项,然后使用Codeigniter在另一个选择框上显示数据
- 引导选项卡-下一个和上一个按钮
- Jquery UI选项卡&选择方框-下一个/上一个按钮
- 根据上一个选项卡的选择器重新加载选项卡
- j查询滑动选项卡:控制选项 - 下一个/上一个
- j查询带有下一个/上一个的 UI 选项卡
- AngularJS:仅在最后一个选项卡上显示过滤的内容
- 在选择中从上一个选项获取数据,从当前选项获取数据
- 如何防止在提交表单后恢复到上一个选项卡
- 量角器切换到上一个选项卡
- Accordion滑块在单击其他选项卡时未关闭上一个选项卡
- 下拉选项应根据上一个选项显示
- 链接在新选项卡中打开,并关注上一个选项卡
- 如何在浏览器中触发上一个选项卡(ctrl+pageup)键代码