有人可以告诉我这段代码有什么问题吗?
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条件,即使它在数组中不存在。
任何帮助都会受到赞赏。
答案 0 :(得分: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对象来运行循环。
答案 1 :(得分: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
。