更新:在 if 语句中使用 return false
只能返回“No”信息。跳过所有"is"消息。我怎样才能让 Yes 消息也显示出来?这是更新的 Example .
Example (单个对象循环关键字列表)
Example 2 (一组循环遍历关键字列表的对象)
一旦检查到关键字存在于返回对象数组中,我就无法让第二个示例跳到下一个关键字。当您单击警报消息时,您可以看到 Yes 消息被 No 消息覆盖,因为它无法继续下一个关键字并继续检查不包含该关键字的其他对象。
return true;
似乎不起作用。一旦在返回的对象中找到关键字,谁能告诉我如何跳到下一个循环?
$.ajax({
url: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%20%3D%20%22http%3A%2F%2Fgoo.gl%2FSXYySV%22&format=json&diagnostics=true&callback=",
success: function (data) {
var keywords = ["Germany","England"];
$(data.query.results.json.json).each(function (index, item) {
var nation1 = item.nation1,
nation2 = item.nation2,
title = item.title;
var objects = [nation2,nation1,title];
$.each(objects,function(i,object){
$.each(keywords,function(i,keyword){
alert(keyword)
if ($.inArray(object,keywords)!=-1)
{
$('.'+ title+'_'+keyword).html(title+' contains '+keyword)
return true;
}
else
{
$('.'+ title+'_'+keyword).html(title+' does not have '+keyword)
}
});
});
});
}
});
HTML:
<div class="A_Germany"></div>
<div class="B_Germany"></div>
<div class="C_Germany"></div>
<div class="A_England"></div>
<div class="B_England"></div>
<div class="C_England"></div>
JSON
[{"title":"A","nation1":"Turkey","nation2":"Germany"},{"title":"B","nation1":"France","nation2":"Japan"},{"title":"C","nation1":"Italy","nation2":"England"}]
预期输出应该是
<div class="A_Germany">Yes</div>
<div class="B_Germany">No</div>
<div class="C_Germany">No</div>
<div class="A_England">No</div>
<div class="B_England">No</div>
<div class="C_England">Yes</div>
最佳答案
好的,请原谅我重命名了您的变量——我必须给它们提供上下文。
与其针对每个团队循环所有项目,不如针对每个团队检查每个特定项目一次,例如A_England
只检查 A and England
而不是 A but not England
var teams = ["Germany","England"];
$.ajax({
url: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%20%3D%20%22http%3A%2F%2Fgoo.gl%2FSXYySV%22&format=json&diagnostics=true&callback=",
success: function (data) {
$(data.query.results.json.json).each(function (index, item) {
// make an array of the nations
var arr = [item.nation1, item.nation2];
// check for a team in this game
$.each(teams, function(i, team){
team_index = $.inArray(team, arr);
if (team_index > -1){
$('.'+ item.title + '_'+ team).html("Yes");
}else{
$('.'+ item.title + '_'+ team).html("No");
}
});
});
}
});
我还检查过它在您添加更多团队时是否有效。 http://jsfiddle.net/9mwCG/28/
关于javascript - return false 或 return true 不会跳到 jQuery 中的下一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271488/