我正在使用Shopify's Liquid language为商店创建一些内容列表,但是我在使用此if
语句时无法正确理解逻辑。
我正在尝试根据一些条件将类分配给li
html元素,以便以后最终可以将它们分为5个链接的组。
首先,我要检查链接列表是否小于或等于5个链接,否则转到下一个链接,所有链接是否等于或大于10,如果不是,请转到下一个链接是等于15等。
我知道我的逻辑不太正确,即使我的链接列表中有20个左右的链接,我的代码也似乎以第二个elsif
结尾。
{% if linklists[footer_linklist-2].links.size <= 5 and linklists[footer_linklist].links == empty %}
columns_1
{% elsif linklists[footer_linklist-2].links.size >= 10 and linklists[footer_linklist].links == empty %}
columns_2
{% elsif linklists[footer_linklist-2].links.size >= 15 and linklists[footer_linklist].links == empty %}
columns_3
{% endif %}
答案 0 :(得分:1)
您需要按降序排列elsif
。第一个中的>=10
将捕获所有10个或更多(包括15、20等)的所有内容。试试这个:
{% if linklists[footer_linklist-2].links.size <= 5 and linklists[footer_linklist].links == empty %}
columns_1
{% elsif linklists[footer_linklist-2].links.size >= 15 and linklists[footer_linklist].links == empty %}
columns_3
{% elsif linklists[footer_linklist-2].links.size >= 10 and linklists[footer_linklist].links == empty %}
columns_2
{% endif %}
答案 1 :(得分:1)
首先,您应该检查最大的大小,然后检查是否越来越小,因为现在,如果链接列表大小为30,则它将转到columns_2
,因为20> = 10,所以您的代码将分配给值columns_2
并没有去其他任何地方。正确的代码应如下所示:
{% if size >= 15 %} // all numbers greater or equal 15
columns_4
{% elseif size >= 10 %} // there you get numbers greater or equal 10, but smaller than 15
columns_3
{% elseif size > 5 %} // I added this, because what will happen if size is for example 7?
columns_2
{% else %} // any size smaller or equal 5
columns_1
{% endif %}
您当然可以按照从小到大的顺序还原(在您的情况下应该更快):
{% if size <= 5 %} // all numbers lower or equal 5
columns_1
{% elseif size <= 10 %} // there you get numbers lower or equal 10, but greater than 5
columns_2
{% elseif size <= 15 %} // all numbers lower or equal 15, but greater than 10
columns_3
{% else %} // any size greater than 15
columns_4
{% endif %}