我想把变量放入多个值

时间:2014-01-09 16:45:48

标签: javascript jquery ajax node.js

我想这样做

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

我试过这个并且它有效,但这不是我想要的

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

4 个答案:

答案 0 :(得分:3)

我注意到OP正在使用jQuery,但这适用于任何不是

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

编辑,Gah,被Blazemonger殴打20秒

答案 1 :(得分:1)

使用数组和$.inArray()

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

}

答案 2 :(得分:1)

尝试合成当前分散在许多不同答案和评论中的信息......由于两件事情,您的代码无效:

  1. 您正在使用in来检查数组中的,而不是。因此,例如,3 in [1,2,3]将为false,因为[1,2,3]具有键(索引)0,1,2
  2. 很可能,您的值是一个字符串
  3. 解决方案是确保您的值属于正确的类型,并使用正确的函数。有两个明显的选择:

    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
    

答案 3 :(得分:0)

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

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