将css width string转换为常规数字

vit*_*hsb 20 javascript css jquery numbers width

在尝试计算隐藏元素的宽度时,我发现jquery.width()为该元素的宽度返回0.

我发现使用jquery.css('width')会通过使用声明的样式宽度返回正确的宽度(即使该值与初始样式表不同).问题是css('width')方法返回一个字符串,通常是"100px"方式.我的问题解决了:如何从"100px"字符串中检索数字?有一个简单的方法吗?

Fen*_*ton 28

如果它总是以px格式返回,"100px","50px"等(即不是"em"或百分比),你可以......

var width = parseInt($("#myelem").css("width"),10); // always use a radix
Run Code Online (Sandbox Code Playgroud)

要么

var width = parseInt(element.style.width,10); // always use a radix
Run Code Online (Sandbox Code Playgroud)

它忽略了"px"后缀,所以你应该好好去.

虽然内心深处,但我认为如果$("#myelem").width()不能正常工作,那就不对了.

关于隐藏元素的注释.

如果要添加jQuery以逐步增强页面,则首次加载页面时,您计算的元素应该是可见的.所以你应该在最初隐藏元素之前获得宽度.通过这样做,$("#myelem").width()将起作用.

var myWidth = 0;

$(document).ready( function () {
    myWidth = $("#myelem").width();
    $("#myelem").hide();
});
Run Code Online (Sandbox Code Playgroud)


jon*_*ony 7

在简单的 JavaScript 中:

parseInt('100px', 10)
Run Code Online (Sandbox Code Playgroud)

适用于“100em”、“100%”,甚至“100”。不需要任何正则表达式模式。