javascript - 获取div的值并解析为整数以进行计算

标签 javascript jquery parsing

我有一个 javascript 函数可以进行一些计算。在函数末尾,它将值存储在

$('#n3').html(n3);
$('#n4').html(n4);
$('#n5').html(n5);
$('#n6').html(n6);
$('#n7').html(n7);

然后我将它们显示在这样的 div 中

<div id="n3"></div>
<div id="n4"></div>
<div id="n5"></div>
<div id="n6"></div>
<div id="n7"></div>

一切正常。然后我想获取 div 的 id,然后解析它们,以便我可以使用整数。

 var val3 = $('#n3').val();
   var val4 = $('#n4').val();
   var val5 = $('#n5').val();
   var val6 = $('#n6').val();
   var val7 = $('#n7').val();
   var newVal3 = parseFloat(val3);
   var newVal4 = parseFloat(val4);
   var newVal5 = parseFloat(val5);
   var newVal6 = parseFloat(val6);
   var newVal7 = parseFloat(val7);

所以我尝试将它们存储在 var 中并解析,但这不起作用。我正在尝试使用数据在谷歌图表中显示。

如有任何帮助,我们将不胜感激。

最佳答案

当您调用val()时,它会尝试读取元素的。这仅适用于表单元素(例如文本输入)。

如果你想获取div的文本内容作为数字,你可以这样做:

var div = $('#n5');
var number = parseFloat(div.text());

这将为您提供 div 内的文本内容并使用 parseFloat 解析它们。

如果你想找到 div 中的第一个数字,即使还有其他内容,你也可以使用正则表达式(但要注意,它们并不是万无一失的,你需要确保您的 div 中有可预测的内容):

var divText = $('#n5').text();
var match = divText.match(/\d+(\.\d+)?/);       // Only matches integers and floats.
var number = match ? parseFloat(match[0]) : 0;  // 0 because we didn't find a match.

请注意,上面的正则表达式与格式化数字不匹配(例如,1,234.561.123456e+10)

关于javascript - 获取div的值并解析为整数以进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30038256/

相关文章:

javascript - Jquery #id focus() 显示无id

JavaScript 正则表达式三部分

javascript - 如果 PHP 响应等于某物,如何使 jQuery 发出警报

javascript - jQuery mobile - 在不知道页面名称的情况下强制 pagebeforeshow

javascript - 拼接 JSON 列表中的元素 - javascript

javascript - 等待 nightwatchjs 中的元素不再被禁用

javascript - 如何处理使用 Vue.js 动态生成的多个表单

javascript - 可以使用 eval 来测试相等性吗?

java - 使用流阅读器的问题

r - 解析回 'messy' API 结构