繁体   English   中英

从页面读取值并使用 jquery 取回错误值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM