Javascript 如果从选择框中选择了一个或多个项目,如何创建条件参数?
如果我有以下选择框:Javascript 如果从选择框中选择了一个或多个项目,如何创建条件参数?,javascript,jquery,if-statement,Javascript,Jquery,If Statement,如果我有以下选择框: <select id="a1" multiple> <option>Apple</option> <option>Banana</option> <option>Carrot</option> <option>Dates</option> <option>Eggs</option> <option>French fries</
<select id="a1" multiple>
<option>Apple</option>
<option>Banana</option>
<option>Carrot</option>
<option>Dates</option>
<option>Eggs</option>
<option>French fries</option>
</select>
苹果
香蕉
胡萝卜
日期
鸡蛋
炸薯条
编写有条件的if
/else
语句的正确方法是什么,以便仅在选择某些项时执行某些函数
意思是:
如果选择了苹果或香蕉,则如果满足条件#1并触发代码,则
但如果选择了胡萝卜、枣子或鸡蛋,那么如果满足条件2,就会触发不同的代码
等
编辑:我想我使用了这个数组中的项目作为例子,但是最有用的构造将把条件绑定到所选的索引,而不一定只绑定到字符串值。这样,任何选择框都可以使用条件参数,而不考虑其中的值。这是怎么回事?
一种方法是使用相关索引到要在这些索引上调用的相关函数的映射,例如:
function functionOne() {
console.log('functionOne called');
}
function functionTwo() {
console.log('functionTwo called');
}
var functionMap = {
'0-1-2': function(){
functionOne();
},
'4-5': function(){
functionTwo();
}
};
$('select').change(function () {
var valueString = $(this).find('option:selected').map(function () {
return $(this).index();
}).get().join('-');
if (functionMap.hasOwnProperty(valueString)) {
functionMap[valueString]();
}
});
参考资料:
- jQuery:
- 纯JavaScript:
在选项上添加一个eventlistener并检查文本,或者添加额外的html值,如data name=“banana”
?您想要条件的逻辑或访问值的代码?您可以将更改事件处理程序添加到选择事件,然后在那里添加条件
function functionOne() {
console.log('functionOne called');
}
function functionTwo() {
console.log('functionTwo called');
}
var functionMap = {
'0-1-2': function(){
functionOne();
},
'4-5': function(){
functionTwo();
}
};
$('select').change(function () {
var valueString = $(this).find('option:selected').map(function () {
return $(this).index();
}).get().join('-');
if (functionMap.hasOwnProperty(valueString)) {
functionMap[valueString]();
}
});