innerHTML与parseFloat的组合

innerHTML in Combination with parseFloat

本文关键字:组合 parseFloat innerHTML      更新时间:2023-09-26

我想做的事情可以通过以下方式完成…

elementContent = document.getElementById('docElement').innerHTML;
elementContent = parseFloat(elementContent);

或…

elementContent = parseFloat( document.getElementById('docElement').innerHTML );

,但我不禁想知道是否有一种更优雅的方式来检索和分配DOM内容作为一个我可能不知道的浮点数。了解吗?

有一元加号操作符,它试图将字符串(或其他类型的toString())转换为数字。它的用法如下:

elementContent = +document.getElementById('docElement').innerHTML;

就像其他人提到的你可以使用jQuery作为。innerhtml的语法糖

这是一种很好的做事方式。我唯一能建议的是,如果您可以完全避免使用HTML标记,通过将"干净"的数字存储为元素的属性,这将是可取的,因为它可以避免在HTML变得比您期望的更花哨时可能引入的问题。(例如,有时设计人员希望使用Unicode"minus"字形而不是普通的连字符来格式化负数,因为它看起来更好。)

因此,如果你能像这样生成你的元素:

<span id='docElement' data-value='29.20221'>29.20221</span>

,而不是访问值"。你会使用。getattribute ():

var value = document.getElementById('docElement').getAttribute('data-value');
value = parseFloat(value);

使用JQuery:

var html = parseFloat($('#docElement').html());
$('#docElement').html(html);

如果使用jQuery之类的库,代码将更加优雅,如下所示:

var el = parseFloat( $('#docElement').text() );

不要忘记你可能会遇到一个问题,你需要trim()字符串