问题描述
我正在使用此代码,并尝试将具有附加功能的某些HTML内容显示给与产品ID匹配的特定产品的特定类。问题是这不起作用,也许我不知道如何正确收集客户正在查看的产品ID。现在,根据代码,它要么显示在所有产品上,要么不显示在所有产品上。
$(function () {
if (Meta.product.id === '5473068220572'){
$(".header").append('<div class="option-values">Testing</div>');
}
});
所以我想将该div附加到5473068220572项目的标头类中,我该怎么做?
Shopify问题。
解决方法
液体变量和对象在JavaScript中不可用。您必须在模板文件中对其进行初始化,然后在JavaScript中使用它。在这种特定情况下,您可以在产品模板中添加以下脚本标记。将其添加到product-template.liquid部分或呈现“产品”页面时包含的其他文件中。
{% unless product == empty %}
<script>
const productInfo = {{ product | json }};
</script>
{% endunless %}
然后在您的JavaScript文件中,检查变量是否存在并且ID匹配,然后附加内容。
document.addEventListener("DOMContentLoaded",function(event) {
if(productInfo && productInfo.id === 123){
console.log("Id matched");
$(".product-single__title").append("Added Content");
}
});
上面的示例代码在首次亮相Shopify主题上工作正常。