2015-05-25 101 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

當我第一次打開它時沒有回答,我顯然太慢了:) –