.val() rounding up?

.val() rounding up?

本文关键字:up rounding val      更新时间:2024-02-26

我试图获取#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')取整。除了getComputedStyle之外,jQuery中的.css还有很多内容。比较

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

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

在CSS中,像素只是另一个单位,定义为1/96英寸。它们本身并没有什么内在的整体性。在高DPI显示器中,如移动屏幕、较新的笔记本电脑和印刷媒体,拥有"像素"的分数是有意义的。但offsetWidth被定义为整数值[CSOM]:

readonly attribute long offsetWidth;

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

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

示例

您也可以尝试使用getBoundingClientRect[CSOM],并通过边界和填充引入的更改进行反向操作。此方法返回一个DOMRect对象,该对象的信息表示为浮点数[geometry]。

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