十进制javascript固定
我有一些标签“span”,上面有我的“产品”的价格(0.9;1.23;9.0),我使用“toFixed(2)”的方法有两个小数位。 问题是现在我所有的价格都是相同的:0.90。 我应该怎么做才能使方法“toFixed”单独获取我的“跨度”? 我的代码:十进制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()
您应该循环到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);
});