Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript parseFloat用于具有相同类的多个条目_Javascript_Jquery_Html - Fatal编程技术网

Javascript parseFloat用于具有相同类的多个条目

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">

我有一个分类页面,在那里我显示不同的产品。在每个产品中,我都有一个部分显示Was PriceSave PriceNew 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);