2015-05-25 61 views
0

现在我有只有1 IF语句:添加3 IF语句的jQuery

它像:如果4天巴黎选择选择& 1人,然后显示一个div:

if (personPValue == "4 Days Paris" && numAantal == "1") { 
    $("#t-extracost-90").show(); 
    extraCost90 = 90; 
} else { 
    $("#t-extracost-90").hide(); 
    extraCost90 = 0; 
} 

但我想在if语句中添加更多的选择选项,现在我只是复制这个和编辑和过去的新规则,这是工作正常,

我可以在一个较短的wa ÿ?因为现在我的网页越来越长

我只想做这样的事情:

if (personPValue == "4 Days Paris" && "3 Days London" && "3 Days Italy" numAantal == "1") 

但不工作:(

IF 4天巴黎 & 4天伦敦 & 3天意大利被选中& 人比显示DIV:#T-extracost-90

回答

0

你在if条件缺personPValue ==

if (personPValue == "4 Days Paris" && personPValue == "3 Days London" && personPValue == "3 Days Italy" && numAantal == "1") 

我相信,你想or而不是and

if ((personPValue == "4 Days Paris" || personPValue == "3 Days London" || personPValue == "3 Days Italy") && numAantal == "1") 
+0

@ d3xt3r检查更新回答 – Tushar

+0

谢谢,它的工作原理! – d3xt3r

+0

试试这个:'if((personPValue ==“4 Days Paris”|| personPValue ==“3 Days London”|| personPValue ==“3 Days Italy”)&& numAantal ==“1”)' – Tushar

0

我不确定,但我认为你的意思是......在这种情况下,我会使用一个switch语句或一个包含所有正确选项的字典。 1.使用开关:

switch (personPValue) { 
    case "4 Days Paris": 
    case "4 Days London": 
    case "3 Days Italy": 
    if (numAantal == "1"){ 
    $("#t-extracost-90").show(); 
    } 
} 

2.使用字典:

var allowedOptions = {"4 Days Paris":true,"4 Days London":true,"3 Days Italy":true}; 
if (personPValue in allowedOptions && numAantal == "1"){ 
      $("#t-extracost-90").show(); 
     } 
+0

@Tushar的答案是我的解决方案,也是最快的方法!但无论如何谢谢你回答 – d3xt3r

+0

快并不总是最好.. :-) 如果你将来有更多的选择,该怎么办?编辑该条件将变得凌乱 – navotgil

0

尝试这样的事情,可在fiddle找到演示。这是完全可行的例子。

JS

var numAantal = "1"; 

$('#test').click(function(){ 
    var items = []; 
     $('option:selected').each(function(){ 
      alert(this.value); 
     items.push(this.value); 
    }); 
    if (($.inArray('3', items) != -1) && ($.inArray('4', items) != -1) && numAantal === '1'){ 
     alert('show'); 
    } 
    else { 
     alert('hide'); 
    } 
}); 

HTML

<select multiple="multiple"> 
    <option value="3">3 Days London</option> 
    <option value="4">4 Days Paris</option> 
    <option value="5">other</option> 
    <option value="6">other2</option> 
</select> 

<input type='button' value='test' id='test'/> 
+0

这一个也是好&快!我肯定会尝试这个!谢谢 – d3xt3r

0

您需要将您的VAR contanstly比较,以你想要的值:

if (value="4 Days..." && value=="3 Days..." && value=="3 Days..." && num="1") 

不管怎么说,正如你所说的,这永远行不通,在这个IF语句中,它的每一部分都必须是真的,所以var“value”需要有三个不同的值es在同一时间工作。 有两种选择: - 您有三个不同的变量值value1,value2,value3,在这种情况下,前面的语句将起作用。 - 你只有一个变种,可以有三种不同的价值观,其中之一必须是真实连同NUM ==“1”,在这种情况下,你正在寻找的东西是这样的:

if ((value=="val1" || value=="val2" || value=="val3") && num="1") 
+0

谢谢,但问题已经解决! – d3xt3r

+0

当我第一次打开它时没有回答,我显然太慢了:) –