【问题标题】:I want to put into variables multiple value [closed]我想将多个值放入变量中[关闭]
【发布时间】:2014-01-28 08:33:33
【问题描述】:

我想这样做

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

我已经尝试过了,它有效,但这不是我想要的

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

【问题讨论】:

  • 您可以将$(this).val() 缓存在一个局部变量中,然后您的条件表达式将兼具高性能和可读性。

标签: javascript jquery ajax node.js


【解决方案1】:

使用数组和$.inArray():

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

}

【讨论】:

    【解决方案2】:
    if ([1,2,3].indexOf($(this).val()) > -1) {
    

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

    【讨论】:

      【解决方案3】:

      我注意到 OP 正在使用 jQuery,但这应该适用于不使用 jQuery 的任何人

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

      编辑,Gah,被 Blazemonger 击败 20 秒

      【讨论】:

        【解决方案4】:

        正在尝试综合目前分散在许多不同答案和 cmets 中的信息...您的代码无法正常工作,原因有两个:

        1. 您正在使用in 检查数组中的,而不是。因此,例如,3 in [1,2,3] 将为 false,因为 [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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-09
          • 1970-01-01
          • 2020-03-08
          • 1970-01-01
          相关资源
          最近更新 更多