javascript - 在for的遍历循环中,else之后的结果alert如何让其只弹出一次?
本文介绍了javascript - 在for的遍历循环中,else之后的结果alert如何让其只弹出一次?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在一个for循环
中当不满足之前的两个if
条件时,则弹出alert
提示框,由于做了遍历查询,所以alert
会根据数组数量多次弹出,请教这个应该如何做截断,让其判断后只弹出一次?
$(function(){
var jsons = [
{"id":"621234","info":"内容一"},
{"id":"62123456","info":"内容二"},
{"id":"624321","info":"内容三"},
]
function f(jsons,num) {
var num8 = num.substr(0,8);
var num6 = num.substr(0,6);
var result6 = '';
var result8 = '';
for(var i = 0,len = jsons.length; i < len;i++) {
var id = jsons[i].id;
if(id == num8) {
result8 = jsons[i].info.toString();
$("#card_info").fadeIn("500");
$("#close").fadeIn("500");
break;
}
if(id == num6) {
result6 = jsons[i].info.toString();
$("#card_info").fadeIn("500");
$("#close").fadeIn("500");
}
else{
alert("不符合条件");
}
}
return result8 ? result8 : result6;
}
$("#down").click(function(){
var user_info = $("#txt").val();
var table = document.getElementById("card_info");
table.innerHTML=(f(jsons, user_info));
})
});
目前这样写会根据json数据的条数,弹窗就会弹出三次。。。
这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义
解决方案
function f(jsons, num) {
var num8 = num.substr(0, 8);
var num6 = num.substr(0, 6);
var result = '';
var inArr = 0;
for (var i = 0, len = jsons.length; i < len; i++) {
var id = jsons[i].id;
if (id == num8) {
result8 = jsons[i].info.toString();
$("#card_info").fadeIn("500");
$("#close").fadeIn("500");
inArr++;
break;
}
if (id == num6) {
result6 = jsons[i].info.toString();
$("#card_info").fadeIn("500");
$("#close").fadeIn("500");
inArr++;
}
}
!inArr && alert("不符合条件");
return result8 ? result8 : result6;
}
这篇关于javascript - 在for的遍历循环中,else之后的结果alert如何让其只弹出一次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文