我是javascript的新手并且在使用数组方面苦苦挣扎。
我正在尝试检查用户输入值是否在我声称为fruits的数组中。如果是我想执行代码。如果不是,我想要显示警报。我尝试使用
的instanceof
检查值的方法,但代码不执行任何if else语句。任何想法为什么?
$("#submit-btn").bind("click", function() {
var comment = $("#comments");
var commentValue = $.trim(comment.val());
var index;
var fruits = ["Banana", "Orange", "Apple", "Mango"];
for (index = 0; index < fruits.length; index++) {
text += fruits[index];
if (commentValue.length === 0) {
alert('Comments are required to continue!');
}
else if (commentValue instanceof fruits){
execute code
});
}
else {
alert('not a valid fruit');
}
return false;
}
});
答案 0 :(得分:0)
你的第一个if应该在for循环之外。
在里面你只需将else if改为
if(commentValue === fruits[index])
然后在for循环之后将else中的代码移出。
更简单的方法是:
if (commentValue.length === 0) {
alert('Comments are required to continue!');
return false;
}
if(fruits.indexOf(commentValue) > -1) {
execute code
return false;
}
alert('not a valid fruit');
return false;
答案 1 :(得分:0)
尝试indexOf(),如果indexOf返回大于-1的任何值,则匹配
像这样:else if (commentValue.indexOf(fruits[index]) > -1){