打破 Else If 语句

Breaking Else If statement

我正在使用 Shopify's Liquid language 为我的商店创建一些内容列表,但我无法正确使用我正在使用的 if 语句的逻辑。

我正在尝试根据一些条件将 类 分配给 li html 元素,以便我最终可以将它们分成 5 个链接的组。

首先,我正在检查链接列表是否小于或等于5个链接,如果不是,则继续下一个,是否所有链接都等于或大于10个,如果不是,则转到下一个,是链接等于 15 等等

我知道我的逻辑在某处不太正确,我的代码似乎在第二个 elsif 结束,即使我的链接列表中有 20 个左右的链接。

{% 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 %}

您需要按降序排列 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 %}

首先你应该检查最大的大小,然后越来越小,因为现在,如果链接列表大小是例如 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 %}