我有一个网页正在循环,并在循环内使用循环。
{% for o in something %}
{% for c in o %}
<div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
现在,这意味着每次在循环内,第一个 div 标签变白。但是,我想要的是在白色和黑色之间交替,即从白色开始,然后下次在循环内时,第一个 div 标签用黑色开始。有可能在这里实现?
我有一个网页正在循环,并在循环内使用循环。
{% for o in something %}
{% for c in o %}
<div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
现在,这意味着每次在循环内,第一个 div 标签变白。但是,我想要的是在白色和黑色之间交替,即从白色开始,然后下次在循环内时,第一个 div 标签用黑色开始。有可能在这里实现?
有一个关于这个问题的接受错误打开。您可能想尝试建议的更改,看看它是否适合您。
如果您不想尝试,或者它不起作用,请试一试:
{% cycle 'white' 'black' as divcolors %}
{% for o in something %}
{% for c in o %}
<div class="{% cycle divcolors %}"></div>
{% endfor %}
{% endfor %}
据我了解,循环将从白色开始,然后每次在循环内循环遍历这些值(这意味着您不会每次都以白色重新开始)。
像这样的东西可能有效(未经测试):
{% for o in something %}
{% for c in o %}
{% ifchanged forloop.parent.counter %}
<div class="{% cycle 'white' 'black' %}"></div>
{% else %}
<div class="{% cycle 'black' 'white' %}"></div>
{% endifchanged %}
{% endfor %}
{% endfor %}