js style-Eigenschaften gibt leer zurück

8

Ich versuche, den ursprünglichen CSS-Breitenwert eines Objekts mit JavaScript zu erhalten. Wenn ich jedoch:

%Vor%

Es wird immer leer zurückgegeben. Ich habe auch bemerkt, dass jede Eigenschaft, auf die ich mit dieser Syntax zugreife, leer ist. Ich weiß sicher, dass das gegebene Element existiert, da

%Vor%

zeigt mir das richtige Objekt.

Kann mir jemand helfen, dieses Problem zu lösen?

    
Tiddo 03.06.2011, 17:58
quelle

5 Antworten

8

Sie versuchen wahrscheinlich, den im Stylesheet eingestellten Wert zu erhalten, nicht direkt wie folgt:

%Vor%

Wenn Sie die Breite des Elements erhalten möchten, können Sie die Eigenschaft innerWidth verwenden:

%Vor%     
bjornd 03.06.2011, 18:04
quelle
9

Keine der vorherigen Antworten war richtig.

Die Eigenschaft, nach der Sie suchen, ist clientWidth , aber nicht in "style"

%Vor%

Das funktioniert sowohl bei "width", die mit externem css, style seccion oder sogar inline style="width: 80px"

gesetzt wird

Allgemeiner Hinweis: Verwenden Sie nicht <div width="500"> , da es keinen Effekt hat

Das erwähnte offsetWidth ist die zweitbeste Wahl, aber es liefert nicht die exakte Breite, die in css eingestellt ist, sondern diese Breite plus Rahmenbreite

Andere Optionen wie innerWidth , die mit window-Objekten funktionieren, funktionierten für mich nicht auf Divs.

Dieses bizarre Problem, dass style.width nicht richtig funktioniert, verschwendet 2 Stunden meiner kostbaren Zeit :-), hoffe, dass diese Antwort die Zeit für irgendjemanden in der Zukunft verkürzt.

    
drodsou 26.07.2012 17:14
quelle
1
%Vor%

ODER

%Vor%

Das funktioniert für mich

    
zod 03.06.2011 18:05
quelle
1

Ich habe es versucht und ich kann den Wert

erhalten

Ссылка

Nun, es sei denn, das width hat keine Einheit

Ссылка

    
OnesimusUnbound 03.06.2011 18:06
quelle
0

Ich glaube, das wird funktionieren

%Vor%     
Mertis 03.06.2011 18:03
quelle

Tags und Links