当选项被选中时更改变量值,当不再被选中时返回先前的值
Change variable value when option is selected, return previous value when not selected anymore
我需要根据所选择的下拉菜单的选项更新变量的值(在示例中称为"tot")。如果我选择选项1或2,tot必须增加10,如果我选择选项3,变量"tot"必须不增加。如果我选择了选项1,然后我改变了主意,选择了选项3,那么Tot的值必须恢复。
这是select 的html<select name='hello' id='hello'>
<option>Select an option...</option>
<option id='one'>One</option>
<option id='two'>Two</option>
<option id='three'>Three</option>
</select>
这是我写的jquery脚本。我想我没有理解。change函数的功能,因为它没有像我预期的那样工作。
var extra = 0;
var tot = 0;
$(document).ready(function () {
$('#hello').change(function(){
if($('#one').is(':selected')) {
extra = 10;
}
else if($('#two').is(':selected')) {
extra = 10;
}
else if($('#three').is(':selected')) {
extra = 0;
}
tot = tot + extra;
});
});
或者(如果我理解你的意思正确的话)....
var tot = 120; //some number picked at random
var helloed = false; // flag for whether incremented
$(document).ready(function(){
$("#hello").change(function(){
var sel = $(this).find(":selected").attr("id")
if (sel == "one" || sel =="two" ) {
if (!helloed) {
tot += 10;
helloed = true;
}
} else { // 'three' selected
if (helloed) {
tot -= 10;
helloed = false;
}
}
alert ("Tot is now " + tot);
});
});
如果有更多的选项,我会选择一个开关,而不是If,但是对于这个例子
var extra = 0;
var tot = 0;
var initialTot = tot;
$(document).ready(function () {
var previous = 0;
var selected = 0;
$('#hello').change(function(){
if($('#one').is(':selected')) {
previous = selected;
selected = 1;
extra = 10;
}
else if($('#two').is(':selected')) {
previous = selected;
selected = 2;
extra = 10;
}
else if($('#three').is(':selected')) {
previous = selected;
selected = 3;
extra = 0;
}
tot = tot + extra;
if(previous === 1 && selected === 3) {
tot = initialTot;
}
});
});
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 变量dos'即使我可以返回更新后的值,也不会改变
- 在搜索发生之前返回一个页面- URL不会改变
- 不能理解为什么这个函数返回false如果我改变参数值
- 如何使链接在点击时改变段落的内容?返回false,不工作
- jQuery:为什么index()在动态改变DOM后返回-1
- 需要一种优雅的方式来根据输入改变一行if语句的返回结果
- 用UI-Router防止返回按钮上的状态改变
- 如果array .prototype.slice()方法返回浅拷贝,为什么改变切片数组的值不会改变原始数组
- 改变Html返回函数的元素
- Jquery改变HTML属性使用attr()返回对象对象
- 如何改变html文本从jQuery返回值
- AngularJS服务内部的promise返回值似乎会改变
- 测试一个Node.js函数,该函数的返回值可以根据执行异步操作的时刻而改变
- 返回新状态,不要改变它.我这样做对吗?
- 在MongoDB聚合框架中使用$avg函数似乎不会改变返回值
- 当选项被选中时更改变量值,当不再被选中时返回先前的值