我想在代码中创建if和and语句,为链接提供3个不同的选项。
我已经尝试过if / else代码,它可以工作。具有两个if语句(一个带有“ AND”的语句)将不起作用,因为错误指出在第一个“ if”之后应该有一个结束语句。我也尝试在第二个语句中使用'elseif'和'else if',但是没有运气。有没有办法做到我找不到的?
<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
{% if page.alternate_mx == null %}
<a href="/mx/" title="En Español">Español</a>
{% if page.alternate_mx == null and page.translate_mx %}
<a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
{% else %}
<a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
{% endif %}
</li>
我收到此错误: “液体异常:液体语法错误(第144行):'if'标记从未在/usr/src/app/_includes/header/header-en.html中关闭,该文件包含在/_layouts/default.html中 web_1 |错误:液体语法错误(第144行):“ if”标记从未关闭 web_1 | ...错误: web_1 |错误:运行jekyll build --trace以获得更多信息。“
答案 0 :(得分:1)
它不起作用,因为那里有if if else endif
,第一个if
块没有关闭。如果elsif
对您不起作用,则可以尝试重新排列语句,如下所示:
<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
{% if page.alternate_mx == null %}
{% if page.translate_mx %}
<a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
{% else %}
<a href="/mx/" title="En Español">Español</a>
{% endif %}
{% else %}
<a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
{% endif %}
</li>
另外,您可能应该使用&&
而不是and
,因为它们具有不同的优先级。
<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
{% if page.alternate_mx == null %}
<a href="/mx/" title="En Español">Español</a>
{% elsif page.alternate_mx == null && page.translate_mx %}
<a href="/mx/{{page.translate_mx}}" title="En Español">Español</a>
{% else %}
<a href="{{ site.url }}{{site.baseurl}}{{page.alternate_mx}}" title="En Español">Español</a>
{% endif %}
</li>
答案 1 :(得分:0)
我最终使用了它,效果很好。
<li class="{% if page.body_class == 'language' %}active{% endif %} hidden-md hidden-lg">
{% if page.translate_mx %}
<a href="{{page.translate_mx}}" title="En Español">Español</a>
{% elsif page.alternate_mx == null %}
<a href="/mx/" title="En Español">Español</a>
{% else %}
<a href="{{page.alternate_mx}}" title="En Español">Español</a>
{% endif %}
</li>```