/ / Bestimmen Sie pragmatisch die Breite eines Divs in einem iFrame über jQuery - jquery, html, iframe, width

Bestimmen Sie pragmatisch die Breite eines Divs in einem iFrame über jQuery - jquery, html, iframe, width

Ich habe eine div. Dieser Div lebt in einem Iframe. Dieser Div hat eine Breite. Ich möchte diese Breite über jQuery erhalten. Anbei einige meiner Abenteuer dabei. Genießen Sie bitte!

http://i.imgur.com/AXdfU61.jpg
http://i.imgur.com/Y9MB6Sg.jpg

BEARBEITEN - Warum wirft meine Konsole auch Fehler aus, wenn ich eine Zeile mit einem $ beginne?

BEARBEITEN 2 - Die Frage wurde vereinfacht, um die Grundlagen des Knochens zu verdeutlichen.

Antworten:

1 für die Antwort № 1

In jquery können Sie so etwas tun:

$("#iframeId").contents().find("#divId").width();

Da Ihr Iframe keine ID hat, ändern Sie beideWenn Sie dies finden oder auf andere Weise finden, können Sie $ ("iframe") verwenden, um alle iframes in Ihrem Dokument aufzulisten. In Bezug auf Ihre Versuche, wenn Sie $ (". Span9") verwenden, werden alle Elemente mit dieser Klasse gefunden, sodass Sie auch einen anderen Weg finden müssen, um Ihr Element zu erhalten.


0 für die Antwort № 2

Verwenden $("#IDofDIV").width(); Sie müssen eine ID anstelle einer Klasse für verwendendas Element, dessen Größe Sie ändern möchten / dessen Breite Sie erhalten möchten. Klassen enthalten viele Elemente, es kann sogar Hunderte von Elementen mit derselben Klasse geben. Sie müssen angeben, welches Element keine Gruppe von Elementen ist.

Die Verwendung einer ID wäre also am einfachsten, obwohl es viele andere Möglichkeiten gibt.

Hier ist ein Link zu .width(); Dokumentation.

Außerdem verwenden Sie einen iFrame, sodass Sie möglicherweise Probleme haben, nur Skripte von der Konsole aus auszuführen. Siehe den ersten Kommentar unter Ihrer Frage, in dem @PlantTheIdea eine Erklärung dafür gegeben hat.


0 für die Antwort № 3

Ich habe es gelöst. Obwohl meine Problemumgehung für dieses Problem funktioniert, hatte ich einige andere Probleme mit jQuery auf meiner Site. Das $ funktioniert nämlich nicht in der Konsole. Ich wusste, dass ich auf jQuery verwiesen hatte, aber $ war kein gültiges Objekt.

Es stellt sich heraus, dass wenn jQuery im konfliktfreien Modus ausgeführt wird, das $ im Standardanwendungsfall nicht verfügbar ist. Stattdessen übergeben Sie die Dokumentbereitschaftsfunktion wie folgt:

jQuery (Dokument) .ready (Funktion ($) {

Jetzt ist es ein gültiges Objekt und kann wie gewohnt verwendet werden. Dadurch kann jQuery im Nicht-Konflikt-Modus ausgeführt werden und hat weiterhin Zugriff auf $

Sie können HIER darüber lesen: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

(Abschnitt jQuery noConflict Wrappers)

Hoffe das hilft jemandem!