javascript - return false 或 return true 不会跳到 jQuery 中的下一个循环

标签 javascript jquery arrays loops each

更新:在 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/26/

我还检查过它在您添加更多团队时是否有效。 http://jsfiddle.net/9mwCG/28/

关于javascript - return false 或 return true 不会跳到 jQuery 中的下一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271488/

相关文章:

javascript - JavaScript Canvas 上的自由变换矩形

javascript - .length 在 javascript 中显示值 1

jquery - 如何放大 100% 页宽图像以保持固定高度

c++ - 在 C++ 中将 int[] 转换为 String

java - 将项目添加到数组列表的数组列表

javascript - 扩展javascript按键功能

javascript - 如何从对象数组列表中访问对象?

c# - 如何使用 json.stringify 将对象列表从 View 传递到 MVC Controller

jquery - 滑动改变文字颜色动画

c - 将字符加载到动态分配的二维数组中