Javascript parseFloat用于具有相同类的多个条目
我有一个分类页面,在那里我显示不同的产品。在每个产品中,我都有一个部分显示Was Price、Save Price和New Price。为了说明的结构是价格:Javascript parseFloat用于具有相同类的多个条目,javascript,jquery,html,Javascript,Jquery,Html,我有一个分类页面,在那里我显示不同的产品。在每个产品中,我都有一个部分显示Was Price、Save Price和New Price。为了说明的结构是价格: <p class="old-price"> <span class="price-label">Was</span> <span class="price" id="old-price-65848"> <span class="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>
在产品页面上,这一切都很好,您只有一个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()
}).get()
不幸的是,它返回NaN值
PS:所有价格都是动态生成的
谢谢您可以映射它以获得阵列:
var oldPrices = jQuery('.old-price .price .price').map(function(){
return parseFloat($(this).text().replace(/[^0-9\.]+/g, ""), 10);
}).get();
console.log(oldPrices);
也就是说,您最好设置一个data-*
属性来处理特定于每个元素的旧价格,例如:
和BTW,您的代码片段与您发布的HTML标记无关,除了引用ID属性外,没有旧的价格值。
“这可以很容易地显示”,因为它在中间有明显的<代码> .FixStand()/代码>您希望用新的“OLDPARSE”值做什么?你可以把它们放在一个数组里,但那又怎么样?如何将旧值与新值匹配?或者这不重要吗?@freedomn-m如果我删除。首先()它将计算所有的Was价格。基本上,逻辑是转换为数字,然后使用新价格进行一些数学计算,以百分比显示折扣。看起来您原来的问题已经得到了回答,编辑是一个新问题。我可以建议你在这里标出答案,然后问一个新问题吗?也就是说,specialPrices[0]
是您访问单个数字进行计算的方式。请尝试查看更多console.log()
输出。
var specialPrices = jQuery('.special-price .price .price').map(function() {
return parseFloat(jQuery(this).text().replace(/[^0-9\.]+/g, ""), 10);
var youSave = specialPrices / (oldPrices / 100);
var oldPrices = jQuery('.old-price .price .price').map(function(){
return parseFloat($(this).text().replace(/[^0-9\.]+/g, ""), 10);
}).get();
console.log(oldPrices);