ширина jQuery () возвращается 0 для элемента промежутка, созданного на лету?

Я пытаюсь определить ширину строки. Я использую следующий код, но он всегда возвращается 0. Это, кажется, что, поскольку элемент промежутка уже создается и не существующий в теле страницы, ширина jQuery () возвращается 0. Существует ли путь, таким образом, что я могу получить ширину текста, не обращаясь к созданию фиктивного HTML-кода на странице?

Спасибо :)

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

<body><span class="width">test</span></body>
8
задан Lyon 26 March 2010 в 17:05
поделиться

2 ответа

Элемент должен присутствовать в DOM, чтобы ширина была рассчитана. Если вам нужно рассчитать ширину до того, как пользователь сможет увидеть элемент, попробуйте скрыть его перед помещением в DOM.

8
ответ дан 5 December 2019 в 18:58
поделиться

Вы можете попробовать добавить элемент управления с помощью свойства css visibility: hidden на страницу до получения размера, что позволяет избежать необходимости делать элемент видимым.

Невозможно получить ширину без добавления элемента управления, так как на ширину может влиять множество разных вещей.

1
ответ дан 5 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: