2016-10-20 3 views
-5

Ich versuche eine Lösung in Chrome zu finden. In Firefox kann ich die Größe (von CSS) eines Elements erhalten, ohne Anbringen/Anzeigen es, indem Sie:Nicht angeschlossene Elementbreite funktioniert nicht in Chrome

var elem = $('<div class="someclass"></div>'); 
var w = elem.width(); 
console.log(w); 

FF mir die richtige Größe gibt, aber Chrome gibt immer 0. Jede Arbeit um?

Fiddle here

+0

All diese Lösungen haben mich an das DOM angeschlossen. Ich denke, es gibt keine Lösung, wenn Sie Chrome verwenden und nicht anhängen. – Eric

Antwort

-2

Alle diese Lösungen haben mich auf das DOM zu befestigen. Ich denke, es gibt keine Lösung, wenn Sie Chrome verwenden und nicht anhängen.

0

Try-Selektor von ID oder Klassennamen zu bekommen. Jsfiddle

var elem = $('<div class="someclass"></div>'); 
var w = $(".someclass").width(); 
console.log(w); 

Es funktioniert in allen Browsern;

+0

funktioniert nicht in Chrome – Eric

+0

Es funktioniert in Chrom. Überprüfen Sie JSfiddle. Und in Ihrem Beispiel erstellen Sie kein HTML oder fügen Sie keinen HTML-Code mit Javascript an, dann wie es funktioniert. –

+0

Bitte lesen Sie die Frage. Ich möchte mich nicht an DOM anhängen. – Eric

1

Dies ist ein seltsames Verhalten einiger Browser.

Ich habe gefunden, aber eine Lösung:

var elem = $('<div class="someclass"></div>').hide(); 
$('body').append(elem); 
var width = elem.width(); 
elem.remove(); 
console.log(width); 
+0

danke ich kenne diese Antwort bereits. Ich habe versucht, wie die Frage sagt, einen Weg zu finden, nicht anzuhängen. – Eric

+0

Ich weiß, aber ich kann keinen Weg finden, dies so zu simulieren, dass es nicht angehängt ist –

Verwandte Themen