2010-03-26 44 views
8

我想确定一个字符串的宽度。我使用下面的代码,但它总是返回0.它似乎是因为span元素被创建并且不在页面主体中,jQuery width()返回0.是否有一种方法可以获取文本的宽度而不诉诸在页面中创建虚拟的HTML代码?jQuery的宽度()为飞行中创建的跨度元素返回0?

谢谢:)

$('<span>test</span>').width(); // width = 0 
$('span.width').width(); // returns a width value 

<body><span class="width">test</span></body> 

回答

8

元素必须存在于DOM中才能计算宽度。如果您需要在用户看到元素之前计算此值,请在将其放入DOM之前将其隐藏。

+0

@Dominic感谢您的编辑:) – 2010-03-26 17:51:38

1

你可以尝试添加与CSS属性visibility: hidden页面的控制越来越规模之前,因此避免了需要使元素可见。

没有添加控件就没有办法获得宽度,因为很多不同的东西都会影响宽度。

0

不能设置一个内联元素的宽度,所以你可能总是得到0,或空或未定义,或者一些输出的变化对你根本没有任何帮助。

0

如果你用内联CSS设置宽度,我相信宽度返回正确的值。不理想,但可能适用于某些情况。