2013-04-11 113 views
0

反正有沒有做到這一點:JavaScript的if語句

if (document.getElementById("x").value == 2 || document.getElementById("x").value == 3) { 
     //Do somthing 
    } 

#我能把它簡單的在某種這樣的方式,我試過,但沒有奏效:

if (document.getElementById("x").value == 2 || 3) { 
     //Do somthing 
    } 
+0

的可能重複[使用Javascript:最漂亮的方式進行比較的多值一個值(HTTP://計算器。com/questions/9121395/javascript-the-prettiest-way-to-compare-one-value-against-multiple-values) – 2013-04-11 14:01:09

回答

5

正如其他答案的選擇,如果你不想無論出於何種原因在該範圍內聲明另一個變量:

if (["2", "3"].indexOf(document.getElementById("x").value) > -1) { 
    // Do something 
} 

請注意,舊版瀏覽器不支持Array.prototype.indexOf所以你需要包括a polyfill來處理。

2

你建議的方式不起作用,就像你已經意識到的那樣。 || 3部分將始終爲truthy,因此if語句內的代碼將始終運行。

如果您想讓if語句更具可讀性,您可以將該值保留在變量中,並在if語句中使用該變量。事情是這樣的:

var xVal = document.getElementById("x").value; 
if (xVal == 2 || xVal == 3) { 
    //Do somthing 
} 
0

,你可以事先獲得的價值,這將使其更清晰閱讀

var yourValue = document.getElementById("x").value 

if (yourValue == 2 || yourValue == 3) 
+1

這將總是失敗,因爲元素值是字符串。 – 2013-04-11 14:00:49

+1

Upvoted因爲它使用===而不是==。 – sockmonk 2013-04-11 14:01:34

+0

@Kolink ty,已更正,我對js不熟悉:) – dm03514 2013-04-11 14:05:51

0
var myValue = document.getElementById("x").value; 

if(myValue == 2 || myValue == 3) { 
    //... 
} 
0

擁有現代化的瀏覽器:

if([2,3].indexOf(document.getElementById('x').value) > -1) 

舊版本的IE將需要一個墊片來實現這一目標。或者你也可以自己實現:

function in_array(needle,haystack) { 
    var l = haystack.length, i; 
    for(i=0; i<l; i++) { 
     if(haystack[i] == needle) return true; 
    } 
    return false; 
} 
// ... 
if(in_array(document.getElementById('x').value,[2,3])) { 
0

,如果你想要做的事,如果值是2或3,您只需要編寫

if (document.getElementById("x").value == 2 || document.getElementById("x").value == 3) { 
    //Do something 
} 
2

不同的東西:

if (document.getElementById("x").value in {2:0,3:0}) { 
    //Do something 
} 

我個人使用這種情況 - 通常實際上是最短的(特別是當'ORs'堆積時)。

+1

原始答案,但如果稍後再回來,可能難以閱讀/理解,如果您想要更多價值,也會變得非常混亂。 – 2013-04-11 14:01:38

+0

@Kolink,這取決於你習慣了什麼。我個人對此感到滿意,並一直在使用它......它與其他任何東西一樣熟悉。另外更多的價值僅僅是:{2:0,3:0,4:0,5:0} ..等等 – 2013-04-11 14:03:41

0

嘗試像下面這將幫助你

小提琴:http://jsfiddle.net/RYh7U/129/

腳本:

var value = document.getElementById("x").value; 
if ((value in [,1,2])) 
alert("Do SomeThing"); 

完整的腳本:

<html> 
<head> 
<script type='text/javascript'> 

function check() 
{ 
    var value = document.getElementById("txtin").value; 
    if ((value in [,1,2,3])) 
    alert("Do SomeThing"); 
} 

</script> 
</head> 
<body> 
    <a href="#" onclick='check()'>check</a> 
    <input type="text" id="txtin"/> 
</body> 
</html> 
0

試試這個

var x=document.getElementById("x").value; 

if (x == 2 || x == 3) { 
     //Do somthing 
    }