I'm trying to determine the width of a string. I'm using the following code but it always return 0. It seems to be that as the span element is created and not already present in the page body, jQuery width() returns 0. Is there a way such that I can get the width of the text without resorting to creating dummy html code in the page?
Thanks :)
$('<span>test</span>').width(); // width = 0
$('span.width').width(); // returns a width value
<body><span class="width">test</span></body>
The element must be present in the DOM in order for the width to be calculated. If you need to calculate this before the user can see the element, try hiding it before putting it into the DOM.
You can try adding the control with the css property visibility: hidden
to the page before getting the size, therefore avoiding the need to make the element visible.
There is no way to get the width without adding the control, as alot of different things may interfer with the width.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With