我有一些标签" span"在我的"产品"的价格(0.9; 1.23; 9.0)中,我使用方法" toFixed(2)"有两个小数位。 问题是,现在我所有的价格都是相同的价值:0.90。 我该怎么做才能使方法" toFixed"采取我的"跨度"分别? 我的代码:
//show two decimals
var price = parseFloat($('.unit_price_d').text()); //span
var price_d = (price).toFixed(2);
console.log(price_d);
$('.unit_price_d').text(price_d);
答案 0 :(得分:3)
您可以为.text()
方法提供函数。它接收每个所选元素的旧文本内容作为参数,返回值替换它。
$('.unit_price_d').text(function(i, oldtext) {
return parseFloat(oldtext).toFixed(2);
});
答案 1 :(得分:1)
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()*
和*this*
关键字进行迭代,
代码上!
答案 2 :(得分:0)
您应该循环访问DOM元素并为每个特定元素文本应用toFixed()
。像:
var price = 0
$('.unit_price_d').each(function() {
price = parseFloat($(this).text()).toFixed(2)
$(this).text(price)
})
尽管如此,我建议您在span上使用数据属性更清晰,并在标记中保留这两个值:<span data-price="1.23"></span>
。
最后,如果您正在开始使用JS,那么您应该考虑在没有jQuery的情况下尝试编写代码,以便更好地理解DOM操作(以及全局JS)。