【发布时间】:2016-01-28 15:43:50
【问题描述】:
我有以下代码,它使用了一些 Liquid 标记:
<div id="parent" class="grid-item {{ this.filters | downcase | replace: ' ', '-' | replace: ',', ' ' | replace: '/', '-' }}">
<div class="labels">
{{ this.filters | prepend: '<filter>' | replace: ',', '</filter><filter>' | append: '</filter>' }}
</div>
</div>
我有以下过滤器(可以选择其中一个或全部)
- 情绪板
- 服装
- 设计师
- 造型
- 照片拍摄
- 合作
- 新闻/活动
假设“情绪板”、“设计师”、“协作”被选为过滤器......上面的液体标记将输出以下内容:
<div id="parent" class="grid-item mood-boards designers collaboration">
<div class="labels">
<filter>Mood Boards</filter>
<filter>Designers</filter>
<filter>Collaboration</filter>
</div>
</div>
我需要它来输出这个:
<div id="parent" class="grid-item mood-boards designers collaboration">
<div class="labels">
<filter class="mood-boards">Mood Boards</filter>
<filter class="designers">Designers</filter>
<filter class="collaboration">Collaboration</filter>
</div>
</div>
这在 Liquid 中是否可行(理想的解决方案)或失败,我们可以在 jQuery 中实现吗?
你可以看到类的顺序总是与<filter>的顺序一致。
可能只选择了 1 个或所有上述过滤器,因此代码需要能够将类从 #parent 添加到适当的 <filter>'s。
请帮忙!很难描述,所以请询问您是否有问题或需要更多信息。
编辑:
我只是想如果你可以使用液体为每个可能的过滤器做这样的事情,但我无法让它工作:
<filter class="{{ this.filters[0] | downcase | replace: ' ', '-' | replace: ',', ' ' | replace: '/', '-' }}">
{{ this.filters[0] }}
</filter>
<filter class="{{ this.filters[1] | downcase | replace: ' ', '-' | replace: ',', ' ' | replace: '/', '-' }}">
{{ this.filters[1] }}
</filter>
【问题讨论】:
-
在上面添加了一个编辑。
标签: html liquid business-catalyst