2014-01-09 23 views
-3

我想這樣做我想投入變量多值

if ($(this).val() in (1,2,3)) { 
    ... 
} 

我已經嘗試這樣做,它的工作原理,但它不是我想要的

if ($(this).val()==1 || $(this).val()==2 || $(this).val()==3) { 
    ...   
} 
+0

您可以緩存'$(本).VAL()'在一個局部變量,那麼你的條件表達式將是既高性能和可讀。 –

回答

1

使用數組和$.inArray()

if ($.inArray(parseInt($(this).val()), [1, 2, 3]) > -1) { 

} 
0
if ([1,2,3].indexOf($(this).val()) > -1) { 

for (i in [1,2,3]) 
    if (i==$(this).val()) { 
     ... 
    } 
3

我注意到OP是使用jQuery但這應該對誰不是工作

if([1,2,3].indexOf(yourValue) > -1) { 
    ... 
} 

編輯,鳳甲,以20秒

1

試圖通過Blazemonger毆打合成目前分散在許多不同答案和評論中的信息...由於兩件事情,您的代碼無法正常工作:

  1. 您正在使用哪個in檢查,而不是在陣列。因此,例如,3 in [1,2,3]將是錯誤的,因爲[1,2,3]具有密鑰(索引)0,1,2
  2. 很可能,你的價值是一個字符串

的解決方案是,確保你的價值是正確的類型,並使用正確的功能。有兩個明顯的選擇:

indexOf   - returns the index of the (first) element that matches 
inArray   - is available if you are using jQuery 

示例代碼:

var v = parseInt($(this).val()); // radix 10 
var r = [1,2,3];     // the values to check against 

if(r.indexOf(v) > -1) {  // method 1 

if($.inArray(v, r)) {  // method 2