jquery - 按前缀查找产品标签并将它们一起显示在 shopify 前端的一个文本行中
问题描述
我的一些产品具有相同前缀的标签,例如:
Color Family:Neutrals
和Color Family:Beiges
。
我想要在前端,它看起来像这样:
Color Family: Beiges, Neutrals
.
我成功地设法得到了这条线,除了它重复的次数与具有相同前缀的标签一样多(在本例中为两次):
我的液体代码:
{% for tag in product.tags %}
{% if tag contains "Color Family:" %}
<div class="bullet">
<div class="left">Color Family:</div>
<div class="right bold colorfamily-hook" style="font-weight: bold;">{{tag | replace: 'Color Family:', '' | replace: "||", ", "}}, </div>
</div>
{% endif %}
{% endfor %}
jQuery代码:
$(document).ready(function() {
var comma_replace = function (el) {
return $(el).text().split(',').filter(function(word) {
return word !== ' '
}).join(',')
}
$($('.colorfamily-hook')).text(comma_replace($('.colorfamily-hook')))
})
如果有多个标签具有相同的前缀,我应该如何更改文本行不会重复?
解决方案
您不需要 Javascript,这可以使用 Liquid 来实现:
{% assign k = 0 %}
{% for tag in product.tags %}
{% if tag contains "Color Family:" %}
{% if k == 0 %}
{{ tag }}
{% else %}
{{ tag | remove: 'Color Family:' | prepend: ', ' }}
{% endif %}
{% assign k = k | plus:1 %}
{% else %}
{% continue %}
{% endif %}
{% endfor %}
说明:首先,您启动标签盒的自定义计数器。然后,如果标签是第一个标签,则按原样显示它。如果不是,则删除第一部分并用逗号替换它。完成此案例检查后,您将迭代您的自定义计数器。
推荐阅读
- java - 如何单击按钮并使用硒选择值?
- powerbi - 尝试访问在 Azure SQL Server 上运行 SQL 查询的已发布 Power BI 报告时出现缺少凭据错误
- flutter - 如何让 openEndDrawer() 响应我的自定义 AppBar 按钮而不是想象的 AppBar 按钮?
- heroku - apt-get update 在 Heroku 中返回 Acquire (30: Read only file system) 错误
- sql - 从查询中删除 / 反斜杠以在 oracle 中获取有效数据
- typescript - 未处理的承诺拒绝:NotAllowedError:用户代理不允许该请求
- c# - Newtonsoft.Json 转换器抛出异常说“无法加载文件或程序集'System.Security.Permissions'”
- python - 欧拉计划问题 52:寻找置换倍数
- node.js - 为什么在 NodeJS 应用中启用 CORS 后仍然出现 CORS 错误?
- ssl - 谷歌负载均衡器重定向错误