[英]Reading a value from a page and getting a wrong value back using jquery
在我的 html 页面中,我有下面的 div 并且正在做一些格式化
<div class="diffhrs">
<span class="lbl">Hours Left: </span>
<span class="data">@String.Format("{0:0.0#}", Model.DiffHours)</span>
</div>
当我查看呈现的 html 时,我得到了这个。 注意是3.0
<span class="data">3.0</span>
我在同一页面的按钮的单击事件中有下面的代码行。 当我尝试阅读下面 div 中的文本时,我得到了 3.03。
var ProductionHoursEntered = parseFloat($('div.diffhrs .data').text());
你知道发生了什么吗? .03 来自哪里?
var ProductionHoursEntered = parseFloat($('div.diffhrs .data').text()); console.log(ProductionHoursEntered);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="diffhrs"> <span class="lbl">Hours Left: </span> <span class="data">@String.Format("{0:0.0#}", Model.DiffHours)</span> </div>
问题是你有多个匹配'div.diffhrs .data'
元素,如果你对它们调用.text()
,jQuery 将连接它们的内容。 你基本上会得到类似"3.03.04.05.0"
东西; 将此解析为 float 给出3.03
。
解决方法是使用
parseFloat($('div.diffhrs .data').eq(0).text());
尝试向 parseFloat 方法添加基数,以确保返回十进制值。
parseFloat('3.0',10);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.