2010-11-12 96 views
0

有人能告訴我這段代碼有什麼問題嗎?

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條件,即使它並不在數組中存在。 任何幫助將升值。

回答

3

$.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對象來運行循環。

+0

你打我吧:) – cambraca 2010-11-12 21:23:30

+0

這是我的錯誤。實際上非常感謝你的幫助。 – 2010-11-13 04:59:30

0
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中的位置。

+0

感謝哥們。有用。 – 2010-11-13 05:00:05