【发布时间】:2015-11-03 10:03:57
【问题描述】:
我有一个类别页面,在其中显示不同的产品。在每个产品中,我都有一个显示原价、保存价格和新价格的部分。只是为了说明 Was Price 的结构:
<p class="old-price">
<span class="price-label">Was</span>
<span class="price" id="old-price-65848">
<span class="price">
<span class="currency">£</span>
</span>
</span>
</p>
目前在使用 jQuery 的产品页面上,我可以获取价格并将其转换为数字:
var oldPrice = parseFloat(jQuery('.old-price .price .price').first().text().replace(/[^0-9\.]+/g, ""), 10);
在只有一个 Was Price 块的产品页面上一切正常。但是,当我转到类别页面时,我有多个块使用相同的结构和相同的类,上面的代码只拾取第一个块并忽略其余块。这可以很容易地使用:
console.log(oldPrice, "%");
我如何修改代码,以便它可以拾取类别页面上的所有Was Price?
编辑:
我已经成功地使用下面的代码映射了旧价格和保存价格。但是我正在尝试执行条件为的数学函数:
var oldPrices = jQuery('.old-price .price .price').map(function(){
return parseFloat(jQuery(this).text().replace(/[^0-9\.]+/g, ""), 10);
}).get();
var specialPrices = jQuery('.special-price .price .price').map(function() {
return parseFloat(jQuery(this).text().replace(/[^0-9\.]+/g, ""), 10);
}).get();
var youSave = specialPrices / (oldPrices / 100);
不幸的是它返回了 NaN 值
PS:所有价格都是动态生成的。
谢谢
【问题讨论】:
-
“这很容易显示”,因为它中间有一个明显的
.first()... -
您希望用新的“oldPrice”值做什么?您可以将它们放在一个数组中,但是然后呢?您如何将旧值与新值匹配?还是那不重要?
-
@freedomn-m 如果我删除 .first() 它将计算所有 Was 价格。
-
基本上逻辑是转换为数字,然后使用新价格进行一些数学计算以显示折扣百分比。
-
您的原始问题似乎已得到解答,而编辑是一个新问题。我可以建议您在此处标记答案并提出一个新问题吗?也就是说,
specialPrices[0]是您应该访问单个数字进行计算的方式。尝试更多console.log()输出以查看。
标签: javascript jquery html