Фильтр jquery .each (), основанный на том, соответствует ли тип категории в XML

0

У меня есть функция внизу, чтобы отображать каждую программу, собранную в предыдущей функции.

Он отлично работает, я хочу усовершенствовать его, чтобы при нажатии кнопки каждый(). только для тех программ, которые имеют определенную категорию, например "Jeu",

Любые идеи о том, как я могу усовершенствовать это каждый()?

function displayChannels()
{
    $.each(channel_list, function(index, channel) {
        //Make the code for the channel
        var code_channel = "<li>"
        +"<img src='"+channel._icon+"' alt='"+channel._name+"' title='"+channel._name+"'/>"
        +"<p>"+channel._name+"</p>"
        +"</li>";
        //Display it
        $("#channel-list").append(code_channel);

        //Open a list for the channel program list
        var code_prog_list = "<ul class='channel_row'>";
        //Add each program in it as a li each time

 // DO I NEED TO PUT A FILTER HERE FOR PROGRAMS WHICH MATCH THE CATEGORY 'JEU'
        $.each(channel._programs, function( index, programme ) {
            code_prog_list+="<div class='program'>"
            +"<div class='program_bg'><img src='"+programme._img+"' alt=' '/></div>"
            +"<div class='programInner'>"
            +"<div class='channelIcon'><img src='logos/logo"+programme._icon+".png'/></div>"
            +"<div class='textContainer'><h4>"+programme._title+"</h4>"
            +"<strong><p>"+programme._hour+":"+programme._minutes+"</strong> | "+programme._cat+" ("+programme._duree+"mn)"+"</p></div>" // end of text container
            +"</div>"// end of programInner
            +"<div class='desc'>"+programme._desc+"</div>"
            +"</div>"; // end of div program 
        });

        //Display it
        $("#main").append(code_prog_list);
    });
}
  • 0
    Разве вы не можете просто использовать оператор if ? if (channel._category == 'JEU') { ... } ?
Теги:

1 ответ

0
Лучший ответ

Вы можете проверить, является ли категория "JEU" внутри функции и возвращает true:

if(programme._cat !== 'JEU') {
    return true;
}

Согласно документации для jQuery.each,

Мы можем разбить цикл $.each() на конкретной итерации, заставив функцию обратного вызова вернуть false. Возврат не-false - это то же самое, что и оператор continue в цикле for; он немедленно перейдет к следующей итерации.

Таким образом, в основном, возвращая true в анонимной функции внутри .each вы пропускаете программы, которые не имеют "JEU" в качестве категории.

  • 0
    ДА, это сработало !!!!!!! так хорошо, спасибо! умная идея это обманывает каждого в переходе к следующему спасибо raibaz

Ещё вопросы

Сообщество Overcoder
Наверх
Меню