十进制javascript固定

十进制javascript固定,javascript,jquery,Javascript,Jquery,我有一些标签“span”,上面有我的“产品”的价格(0.9;1.23;9.0),我使用“toFixed(2)”的方法有两个小数位。 问题是现在我所有的价格都是相同的:0.90。 我应该怎么做才能使方法“toFixed”单独获取我的“跨度”? 我的代码: 您应该循环到DOM元素中,并为每个特定元素应用toFixed()。比如: var price = 0 $('.unit_price_d').each(function() { price = parseFloat($(this).text()

我有一些标签“span”,上面有我的“产品”的价格(0.9;1.23;9.0),我使用“toFixed(2)”的方法有两个小数位。 问题是现在我所有的价格都是相同的:0.90。 我应该怎么做才能使方法“toFixed”单独获取我的“跨度”? 我的代码:


您应该循环到DOM元素中,并为每个特定元素应用
toFixed()
。比如:

var price = 0
$('.unit_price_d').each(function() {
  price = parseFloat($(this).text()).toFixed(2)
  $(this).text(price)
})
尽管如此,我还是建议您在span上使用数据属性,以便更干净一些,并在标记中保留这两个值:

最后,如果您正在启动JS,您应该考虑尝试在没有jQuery的情况下编写代码,以便更好地理解DOM操作(和全局JS)。< /P> < P> OK,好问题!

var price = 0
$('.unit_price_d').each(function(){
    price_d = parseFloat($(this).text()).toFixed(2); //span 
    console.log(price_d);
    $(this).text(price_d)
})
注意两件事。使用
*.each()*
*此*
关键字进行迭代,
继续

您可以为
.text()
方法提供一个函数。它接收每个选定元素的旧文本内容作为参数,返回值替换它

$('.unit_price_d').text(function(i, oldtext) {
    return parseFloat(oldtext).toFixed(2);
});

非常感谢各位:D,我刚开始是一名前端开发人员,我对一些东西还是新手谢谢各位:D,我刚开始是一名前端开发人员,我对一些东西还是新手,为什么使用
map()
而不是
each()
?我认为这更有效,在这里也更符合逻辑。并且应该避免在迭代器中声明变量。
$('.unit_price_d').text(function(i, oldtext) {
    return parseFloat(oldtext).toFixed(2);
});