2017-07-21 58 views
1

我希望我的textarea的值是一個列表1,2和3,具體取決於提示中提供的數字。但是,它只適用於每個列表的第一個數字。Javascript:如何獲得一個變量在if構造中可能相等的列表

list = ""; 
 
onclick = function() { 
 
    room = prompt("room"); 
 
    if (+room == (108 || 110 || 112 || 401 || 403 || 405 || 600 || 601 || 602 || 603 || 604 || 605 || 606 || 607 || 608 || 611 || 613 || 615 || 617 || 619 || 621)) { 
 
    list += "1"; 
 
    document.getElementById("p").value = list; 
 
    } 
 
    if (+room == (205 || 300 || 302 || 304 || 400 || 102 || 408 || 409 || 410 || 411 || 412 || 413 || 614 || 616 || 618 || 625 || 627 || 629)) { 
 
    list += "2"; 
 
    document.getElementById("p").value = list; 
 
    } 
 
    if (+room == (301 || 305 || 307 || 310 || 311 || 312 || 313 || 314 || 315 || 316 || 317 || 320 || 321 || 323 || 324 || 325 || 326 || 327 || 331 || 404 || 501 || 512)) { 
 
    list += "3"; 
 
    document.getElementById("p").value = list; 
 
    } 
 
};
<textarea id="p" /></textarea>

+0

你必須比較每個編號'+房間== 108 || +房間== 110 ...'我建議你想辦法做另一種方法。 –

+0

你可以做'[108,110,112,....]。includes(+ room)',所有的數字似乎都是一個不錯的方法來做到這一點,雖然... – adeneo

+0

將值包裝在數組中,並使用'includes'或' indexOf!= -1'。 –

回答

1

你可以把值在數組中,然後用.indexOf()這裏,如:

if([108,110,112,401,403,405,600,601,602,603,604,605,606,607,608,611,613,615,617,619,621].indexOf(parseInt(room)) >= 0){ 
    list+="1"; 
    document.getElementById("p").value=list; 
    } 
+0

提示:'.indexOf(+ room)'作爲'room'是一個字符串。 –

+0

@ibrahimmahrir謝謝你的提示,我錯過了。更正的代碼。 – Dij

+0

這工作。我沒有看到parseInt(),所以起初它沒有工作,但用parseInt(),你的解決方案。非常感謝! – azerty

0

我與創建陣列並使用的IndexOf屬性更新代碼, 請參考如下,

<html> 
 
    <head> 
 
     <title> 
 

 
     </title> 
 
    </head> 
 
    <body> 
 
     <textarea id="p" /></textarea> 
 
     <script type="text/javascript"> 
 
     list=""; 
 
onclick=function(){ 
 
room=prompt("room"); 
 
    var array = [108,110,112,401,403,405,600,601,602,603,604,605,606,607,608,611,613,615,617,619,621]; 
 
    if(array.indexOf(parseInt(room)) !== -1) 
 
    { 
 
     list+="1"; 
 
     document.getElementById("p").value=list; 
 
    } 
 
    var array_1 = [205,300,302,304,400,102,408,409,410,411,412,413,614,616,618,625,627,629]; 
 
    if(array_1.indexOf(parseInt(room)) !== -1) 
 
    { 
 
     list+="2"; 
 
     document.getElementById("p").value=list; 
 
    } 
 
    var array_2 = [301,305,307,310,311,312,313,314,315,316,317,320,321,323,324,325,326,327,331,404,501,512]; 
 
    if(array_2.indexOf(parseInt(room)) !== -1) 
 
    { 
 
     list+="3"; 
 
     document.getElementById("p").value=list; 
 
    } 
 
}; 
 

 
     </script> 
 
    </body> 
 
</html>

希望這會解決,

感謝

問候

相關問題