parseFloat用于具有相同类的多个条目
parseFloat for multiple entries with the same class
我有一个类别页面,在那里我可以显示不同的产品。在每个产品中,我都有一个部分显示以前的价格、保存价格价格。只是为了说明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的产品页面上,我可以获得was价格并将其转换为数字:
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值
附言:所有价格都是动态生成的。
感谢
您可以映射它以获得一个数组:
var oldPrices = jQuery('.old-price .price .price').map(function(){
return parseFloat($(this).text().replace(/[^0-9'.]+/g, ""), 10);
}).get();
console.log(oldPrices);
也就是说,您最好设置一个data-*
属性来处理特定于每个元素的旧价格,例如:<p class="old-price" data-old-price="12345">
。
顺便说一句,你的代码段似乎与你发布的HTML标记无关,除了ID属性之外,没有旧的价格值可以检索。
相关文章:
- 将函数的上下文应用于javascript变量
- keyup事件处理程序更改焦点不适用于快速键入
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- PHP中的setcookie仅适用于localhost
- 包括用于facebook评论框的JavaScript SDK
- 如何检测用于WebGL的专用或集成显卡
- ng更改事件不适用于Dropdown
- 用于搜索的聚合物嵌套绑定
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- JS编译器/包管理器,用于版本控制
- 将CSS应用于printWindow.print();在Javascript中
- 用于'魔术串'属性
- 用于检查数组中是否存在元素的javascript自定义方法
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 在ajax成功后,cluetip不适用于首次点击活动元素
- D3.js模式不适用于弧形或圆环图
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- parseFloat用于具有相同类的多个条目