jQuery width () gibt 0 für ein span-Element zurück, das im laufenden Betrieb erstellt wurde?

8

Ich versuche die Breite einer Zeichenfolge zu bestimmen. Ich benutze den folgenden Code, aber es gibt immer 0 zurück. Es scheint, dass, wie das Span-Element erstellt wird und nicht bereits im Seitenrumpf vorhanden ist, jQuery width () 0 zurückgibt. Gibt es eine Möglichkeit, so dass ich die Breite des Textes, ohne auf Dummy-HTML-Code in der Seite zu erstellen?

Danke:)

%Vor%     
Lyon 26.03.2010, 17:05
quelle

5 Antworten

8

Das Element muss im DOM vorhanden sein, damit die Breite berechnet werden kann. Wenn Sie dies berechnen müssen, bevor der Benutzer das Element sehen kann, versuchen Sie es zu verstecken, bevor Sie es in das DOM einfügen.

    
Josh Stodola 26.03.2010, 17:07
quelle
1

Sie können versuchen, das Steuerelement mit der CSS-Eigenschaft visibility: hidden der Seite hinzuzufügen, bevor Sie die Größe erhalten. Dadurch müssen Sie das Element nicht sichtbar machen.

Es gibt keine Möglichkeit, die Breite zu erhalten, ohne die Kontrolle hinzuzufügen, da viele verschiedene Dinge die Breite beeinträchtigen können.

    
Jan Jongboom 26.03.2010 17:07
quelle
0

Ich habe hier erreicht, weil ich Tests mit Jasmine durchführte und die Breite von jQuery-Objekten berechnen musste, die im laufenden Betrieb erstellt wurden.

Die Lösung, sie zu einem DOM für Tests hinzuzufügen, war: Ссылка

    
Victor Martins 22.01.2012 11:37
quelle
0

Sie können nicht eine Breite eines Inline-Elements festlegen, sodass Sie wahrscheinlich immer 0 oder null oder undefined oder eine Variation der Ausgabe erhalten, die Ihnen überhaupt nicht hilft.

>     
Ben 05.12.2012 19:36
quelle
0

Wenn Sie die Breite mit Inline-CSS einstellen, glaube ich, dass Breite den korrekten Wert zurückgibt. Nicht ideal, aber für einige Kontexte möglicherweise OK.

    
ProfNimrod 15.07.2013 16:19
quelle

Tags und Links