Javascript innerHTML与parseFloat的结合

Javascript innerHTML与parseFloat的结合,javascript,html,dom,Javascript,Html,Dom,我尝试做的事情可以通过以下方式完成 elementContent = document.getElementById('docElement').innerHTML; elementContent = parseFloat(elementContent); 甚至通过 elementContent = parseFloat( document.getElementById('docElement').innerHTML ); 但我不禁想知道,是否有一种更优雅的方法可以检索DOM内容并将其分配为

我尝试做的事情可以通过以下方式完成

elementContent = document.getElementById('docElement').innerHTML;
elementContent = parseFloat(elementContent);
甚至通过

elementContent = parseFloat( document.getElementById('docElement').innerHTML );
但我不禁想知道,是否有一种更优雅的方法可以检索DOM内容并将其分配为浮点数,而我可能并不知道。有什么见解吗?

使用JQuery:

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

如果使用库(如代码),则此库将更加优雅,如下所示:

var el = parseFloat( $('#docElement').text() );
不要忘记,您可能会遇到一个问题,您需要
trim()
字符串。

有一个函数试图将字符串(或其他类型的
toString()
)转换为数字。它的使用方式如下:

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

正如其他人所提到的,您可以在这里使用jQuery作为.innerHTML的基本语法糖。

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

因此,如果您可以生成如下元素:

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

“jquery”标记没有出现在原始问题中。@Pointy,我知道,但他在问题中也引用了这句话:“如果有一种更优雅的方式来检索DOM内容并将其分配为浮点数,我可能不知道”,他可能“不知道”当然,JQueryI总是有点不安地将新属性分配给元素,因为它们经常会激怒w3c验证程序,但实际上您提出了一个很好的观点。我获取的数据是一个价格,如果我想使用美元符号,我就必须
substr
。如果使用HTML5 doctype,那么所有“数据foo”属性都应该验证(因为它们是规范的明确部分)。很高兴知道。我还没有完全深入到v5及其更改中。+1并回答!这正是我所希望的那种“我可能不知道的事情”。非常感谢你的来电!
var value = document.getElementById('docElement').getAttribute('data-value');
value = parseFloat(value);