Loops 在每个3d元素细枝循环后添加div,模数

Loops 在每个3d元素细枝循环后添加div,模数,loops,twig,modulus,Loops,Twig,Modulus,大家好,我有这个小树枝循环,我需要在每3个元素之后添加一些html来关闭div行并打开新的一行 我尝试了这个网站上的各种片段,但没有一个成功 <div class="row"> {% for date, date_info in dates %} <div class="col-sm-4"> <div class="event-box"> {% for category in da

大家好,我有这个小树枝循环,我需要在每3个元素之后添加一些html来关闭div行并打开新的一行

我尝试了这个网站上的各种片段,但没有一个成功

<div class="row">
    {% for date, date_info in dates %}
        <div class="col-sm-4">
            <div class="event-box">
                {% for category in date_info.events %}
                    {% for event in category %}
                        <div class="event-header">
                            {% if event.get_runtime( 'content_img_url' ) is empty %}
                                {{ event | avatar( [
                                'post_thumbnail',
                                'location_avatar',
                                'category_avatar'
                                ]) | raw }}
                            {% endif %}
                            <div class="event-date">
                                {{ date | month }}
                                {{ date | day }}
                            </div>
                            <div class="event-footer">
                                <h3>{{ event.get_runtime( 'filtered_title' ) | raw }}</h3>
                                <div class="event-time">
                                    {{ event | timespan( 'short' ) | raw }}...
                                </div>
                                <div class="event-content"> {{ event.get_runtime( 'filtered_content' ) | slice(0,200) | raw }}</div>

                                <a  class="btn btn-success" href="{{ event.get_runtime( 'instance_permalink' ) | e('html_attr') }}">
                                    {{ text_read_more }}
                                </a>
                            </div>
                        </div>
                    {% endfor %} {# event in category #}
                {% endfor %} {# category in date_info.events #}
            </div>
        </div>
    {% endfor %} {# date, date_info in dates #}
</div>

{%表示日期,日期信息在日期%}
{date_info.events%}中类别的%
{%类别中的事件为%}
{%if event.get_runtime('content_img_url')为空%}
{{事件|化身([
“post_缩略图”,
“位置与化身”,
“类别_化身”
])|生的}
{%endif%}
{{日期|月份}
{{date | day}
{{event.get_runtime('filtered_title')|raw}
{{event | timespan('short')| raw}}。。。
{{event.get_runtime('filtered_content')| slice(0200)| raw}
{%endfor%}{#类别中的事件#}
{%endfor%}{{date_info.events中的类别}
{%endfor%}{{#日期,日期中的日期信息}
阅读本文件时:

我将尝试这种代码:

{% for date, date_info in dates %}
   {% if  loop.index % 3 == 0 %}
       {# put your code to close your div #}
   {% endif %}
{% endfor %}

如果loop.index可被(3)整除而不是loop.last%},则使用{%

下面是我的完整工作代码示例:

<div class="row">

    {% for date, date_info in dates %}
        <div class="col-sm-4">
            <div class="event-box">
                {% for category in date_info.events %}
                    {% for event in category %}
                        <div class="event-header">
                            {% if event.get_runtime( 'content_img_url' ) is empty %}
                                {{ event | avatar( [
                                'post_thumbnail',
                                'location_avatar',
                                'category_avatar'
                                ]) | raw }}
                            {% endif %}
                            <div class="event-date">
                                {{ date | month }}
                                {{ date | day }}
                            </div>
                            <div class="event-footer">
                                <h3>{{ event.get_runtime( 'filtered_title' ) | raw }}</h3>

                                <div class="event-time">
                                    {{ event | timespan( 'short' ) | raw }}...
                                </div>
                                <div class="event-content"> {{ event.get_runtime( 'filtered_content' ) | slice(0,200) | raw }}</div>

                                <a class="btn btn-success"
                                   href="{{ event.get_runtime( 'instance_permalink' ) | e('html_attr') }}">
                                    {{ text_read_more }}
                                </a>
                            </div>
                        </div>
                    {% endfor %} {# event in category #}
                {% endfor %} {# category in date_info.events #}
            </div>
        </div>

        {% if loop.index is divisibleby(3) and not loop.last %}
        </div>

        <div class="row">

        {% endif %}

    {% endfor %} {# date, date_info in dates #}

</div>

{%表示日期,日期信息在日期%}
{date_info.events%}中类别的%
{%类别中的事件为%}
{%if event.get_runtime('content_img_url')为空%}
{{事件|化身([
“post_缩略图”,
“位置与化身”,
“类别_化身”
])|生的}
{%endif%}
{{日期|月份}
{{date | day}
{{event.get_runtime('filtered_title')|raw}
{{event | timespan('short')| raw}}。。。
{{event.get_runtime('filtered_content')| slice(0200)| raw}
{%endfor%}{#类别中的事件#}
{%endfor%}{{date_info.events中的类别}
{%如果loop.index可被(3)整除,而不是loop.last%}
{%endif%}
{%endfor%}{{#日期,日期中的日期信息}
您可以改用过滤器(1.12.3中新增)


我认为这是更好的解决方案:

{% for date, date_info in dates %}
   {% if loop.first %}
      <div class="row"> {# open row #}
   {% endif %}


       {# your code here #}


    {% if loop.index % 3 == 0 %}
        </div><div class="row"> {# after 3 iterates close row and open new #}
    {% endif %}                
    {% if loop.last %}
        </div> {# close last row #}
    {% endif %}
{% endfor %}
{%表示日期,日期\日期%中的信息}
{%if loop.first%}
{开放行}
{%endif%}
{#您的代码在这里#}
{%if loop.index%3==0%}
{#3次迭代后关闭行并打开新#}
{%endif%}
{%if loop.last%}
{关闭最后一行}
{%endif%}
{%endfor%}

我没有看到任何尝试。您是否尝试了批处理过滤器?您的问题太长,无法回答您的问题。请考虑缩短它。完整的HTML代码片段似乎没有必要。@benedict\u w谢谢^^我认为这不完全正确。如果您有3个项目,这将使“”打开。您应该在循环外关闭div,并在“if条件”中添加“and not loop.last”以防止出现这种情况。这个答案可能很好,但您能否添加一个解释,说明它在做什么以及为什么它可能解决OPs问题?代码是不言自明的,这是一个更好的答案。是的!这是惊人的和伟大的作品。更有用。这是一个很好的解决方案。
{% for date, date_info in dates %}
   {% if loop.first %}
      <div class="row"> {# open row #}
   {% endif %}


       {# your code here #}


    {% if loop.index % 3 == 0 %}
        </div><div class="row"> {# after 3 iterates close row and open new #}
    {% endif %}                
    {% if loop.last %}
        </div> {# close last row #}
    {% endif %}
{% endfor %}