【问题标题】:Need help regarding jQuery $.inArray()需要有关 jQuery $.inArray() 的帮助
【发布时间】:2011-05-09 07:40:48
【问题描述】:

谁能告诉我这段代码有什么问题??

jQuery(document).ready(function(){

    var val = ["Hourly", "Daily", "Weekly", "Monthly", "Yearly"];
    var myArr = ["Weekly", "something"];

    $( myArr ).each(function( j ){
        if ( $.inArray( myArr[j] == val ) ) {
            alert( 'yes, Matched !!' );
            console.log(  myArr[j] );
        } else {
            alert( 'Nops ' );
        }
    });

    //console.log( val );
});

我需要匹配数组元素,我使用了$.inArray(),但它永远不会进入 ELSE 条件,即使它不存在于数组中。 任何帮助将不胜感激。

【问题讨论】:

    标签: jquery arrays match each


    【解决方案1】:
    jQuery(document).ready(function() {
    
        var val = ["Hourly", "Daily", "Weekly", "Monthly", "Yearly"];
        var myArr = ["Weekly", "something"];
    
        $(myArr).each(function(j) {
            if ($.inArray(myArr[j], val) != -1) {
                alert('yes, Matched !!');
            } else {
                alert('Nops ');
            }
        });
    
    });
    

    $.inArray在数组中没有找到值时返回-1,否则返回数组中的位置,可能是0

    【讨论】:

      【解决方案2】:

      $.inArray() 接受两个参数,值和数组,如果找到匹配则返回> -1,所以应该是这样的:

      jQuery(document).ready(function(){
         var val = ["Hourly", "Daily", "Weekly", "Monthly", "Yearly"];
         var myArr = ["Weekly", "something"];
         $.each(myArr, function(i, v) {
           if ($.inArray(v, val) != -1) {
              alert( 'yes, Matched !!' );
              console.log(v);
           } else {
              alert( 'Nops ' );
           }
         });
      });
      

      You can test it here。还要注意$.each() 用于非元素集,没有理由创建无效的 jQuery 对象来运行循环。

      【讨论】:

      • 那是我的错误。真的非常感谢你的帮助。
      猜你喜欢
      • 1970-01-01
      • 2019-03-07
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多