我正试图通过大型商务开展新网站,并发现他们没有货运的任何东西。我知道足以识别我的问题以及需要在模板文件中更改的代码,但不能创建代码来执行我想要的操作。目前在结账时计算运费并显示“结账时计算”显示运费的代码块
<div class="DetailRow" style="display: %%GLOBAL_HideShipping%%">
<div class="Label">%%LNG_Shipping%%:</div>
<div class="Value">
%%GLOBAL_ShippingPrice%%
</div>
</div>
我需要行%% GLOBAL_ShippingPrice %%,这使得“结账时计算”仅出现在150磅以下的物品上,对于大于150磅的物品,则出现“联系我们获取运费报价”的消息。目前,重量是由同一文件读取中的一段代码在列表中生成的。
<div class="DetailRow" style="display: %%GLOBAL_HideWeight%%">
<div class="Label">%%LNG_Weight%%:</div>
<div class="Value">
<span class="VariationProductWeight">
%%GLOBAL_ProductWeight%%
</span>
</div>
</div>
似乎%% GLOBAL_ProductWeight %%是显示重量的内容,但它显示“xyz LBS”,因为它将LBS添加到数字中我不知道如何编写代码来检查返回值是大于还是小于150或如何让它然后显示正确的消息。如果需要任何其他信息来创建代码来执行此操作,请通知我,我将提供。
答案 0 :(得分:0)
您可以使用“替换”js功能从文本中删除“LBS”字符串。
(function getCorrectTextBasedOnWeight() {
var weightSpanElements = document.getElementsByClassName('VariationProductWeight');
var answerMessageSpan = document.getElementById('answerMessage');
for (var i = 0; i < weightSpanElements.length; ++i) {
var item = weightSpanElements[i];
var weightValue = item.innerHTML.replace("LBS", "");
if (weightValue <= 150) {
answerMessageSpan.innerHTML = "Calculated at checkout";
} else {
answerMessageSpan.innerHTML = "Contact us for a shipping quote";
}
}
})();
您可以在JSFiddle中使用此示例:http://jsfiddle.net/amontellano/YdV4S/
只需更改HTML部分范围内的值,您就会看到answerMessage如何根据权重值显示正确的文本。