如果我在 Liquid 中有一个 for 循环(使用 Jekyll),我如何才能只定位偶数(或奇数)项?我试过了:
{% for item in site.posts %}
{% if forloop.index % 2 == 1 %}
但这似乎不起作用。我也试过:
(forloop.index % 2) == 1
和:
forloop.index - (forloop.index / 2 * 2) == 1
我想你会想为此使用循环标签。例如:
{% for post in site.categories.articles %}
<article class="{% cycle 'odd', 'even' %}"></article>
{% endfor %}
如果您想为每个循环使用不同的 HTML 标记:
{% for item in site.posts %}
{% capture thecycle %}{% cycle 'odd', 'even' %}{% endcapture %}
{% if thecycle == 'odd' %}
<div>echo something</div>
{% endif %}
{% endfor %}
您可以在Liquid for Designers中找到有关它的更多信息,尽管那里的示例并不是特别有用。这个Shopify 支持线程也应该有所帮助。
与Ales Lande 的回答中Shopify 支持线程所说的相反,在 Liquid-in 形式的filter中有一个功能。modulo
modulo
有了它,你可以这样做:
{% for item in site.posts %}
{% assign mod = forloop.index | modulo: 2 %}
{% if mod == 0 %}
<!-- even -->
{% else %}
<!-- odd -->
{% endif %}
{% endfor %}