javascript - .val() 四舍五入?

标签 javascript jquery

我试图获取 #value_box 的值来显示 100.5,但它一直向上舍入。有谁知道我能做些什么来让它显示小数位?

jsfiddle

<input type="text" id="the_box" style="width:100.5px" value="" />
<input type="text" id="value_box" value="" />

//returns 101
$("#value_box").val($("#the_box").css('width').replace('px', ''));

最佳答案

四舍五入的是.css('width')。除了 getCompulatedStyle 之外,jQuery 中的 .css 还有很多内容。 Comparison .

对于 .css('width'),jQuery 使用 offsetWidth [source] :

val = name === "width" ? elem.offsetWidth : elem.offsetHeight,

在 CSS 中,像素只是另一个单位,定义为 1/96 英寸。它们没有什么本质上是不可分割的。在高 DPI 显示器中,例如移动屏幕、新型笔记本电脑和打印媒体,拥有分数“像素”是有意义的。但是 offsetWidth 被定义为整数值 [CSSOM] :

readonly attribute long offsetWidth;

在这种情况下,如果您在内联样式中显式设置 width 并且想要获取它,您可以做的一件事就是使用纯 DOM 来获取它:

$("#the_box")[0].style.width.replace('px', '')

example

您还可以尝试使用getBoundingClientRect [CSSOM]并通过边框和填充引入的更改进行逆向工作。此方法返回一个 DOMRect 对象,其信息表示为 float [geometry] .

$("#the_box")[0].getBoundingClientRect().width - ...

关于javascript - .val() 四舍五入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638273/

相关文章:

javascript - 根据选择选项隐藏/显示动态生成的 div

javascript - 如何通过索引引用对象属性?

javascript - Masonry Image gallery 不工作,内联 Javascript 不生效

jquery - 使用 Bootstrap-slider 插件格式化工具提示中的数字

javascript - jQuery ajax 停止工作

jquery - 从 WP 电子商务通知框中删除 'Continue Shopping' 链接

jquery - 当点击事件在表单之外时,如何使用 FormStrap.IO/Bootstrap Validator 重置验证字段?

javascript - 无法从嵌入式 SWF 调用函数

javascript - 显示 2 张幻灯片时,光滑的旋转木马自适应高度不起作用

javascript - 从 jquery 中的所有后代中删除样式属性