jQuery width()为动态创建的span元素返回0?

jQuery width()为动态创建的span元素返回0?,jquery,width,Jquery,Width,我想确定一根绳子的宽度。我正在使用以下代码,但它始终返回0。似乎是因为创建了span元素,但该元素尚未出现在页面正文中,jQuery width()返回0。有没有一种方法可以让我不用在页面中创建虚拟html代码就可以获得文本的宽度 谢谢:) $('test').width();//宽度=0 $('span.width').width();//返回宽度值 测试 在获取大小之前,您可以尝试将css属性为“可见性:隐藏”的控件添加到页面中,因此无需使元素可见 如果不添加控件,就无法获得宽度,因为许多不

我想确定一根绳子的宽度。我正在使用以下代码,但它始终返回0。似乎是因为创建了span元素,但该元素尚未出现在页面正文中,jQuery width()返回0。有没有一种方法可以让我不用在页面中创建虚拟html代码就可以获得文本的宽度

谢谢:)

$('test').width();//宽度=0
$('span.width').width();//返回宽度值
测试

在获取大小之前,您可以尝试将css属性为“可见性:隐藏”的控件添加到页面中,因此无需使元素可见


如果不添加控件,就无法获得宽度,因为许多不同的东西可能会干扰宽度。

为了计算宽度,元素必须存在于DOM中。如果您需要在用户看到元素之前计算它,请在将其放入DOM之前尝试隐藏它。

我到这里是因为为什么要用Jasmine进行测试,并且需要计算动态创建的jQuery对象的宽度

将它们添加到DOM进行测试的解决方案是:
您无法设置内联元素的宽度,因此您可能总是得到0、null、未定义或一些对您毫无帮助的输出变体。

如果您使用内联CSS设置宽度,我相信宽度返回的值是正确的。不理想,但在某些情况下可能还可以

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

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