• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

ul-Element in "popup" verschieben

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Liebe Community.

Ich habe ein xt-commerce installiert und möchte die Hauptseite folgendermaßen verändern:
Auf der index-Seite gibt eine Liste mit Herstellern (letztendlich nur ein <ul> mit bestimmter id).

Dieses ul-Element wird dynamisch vom CMS direkt in der index verändert.

Jetzt möchte ich, dass diese Liste in eine Art Popup "verschoben" wird.
Ich habe schon einen Popup programmiert, der mit JavaScript erstellt wird, wenn der entsprechende button gedrückt wird.
Nun soll dieses ul-Element normalerweise nicht sichtbar sein, allerdings in das div vom Popup eingebunden werden.

Sprich das ul existiert. Nun müsste ich per JavaScript das Teil da "reinschreiben".
Etwas in der Art
Code:
popup.innerHTML = [i]ul-Element mit der id "sowienoch"[/i]
Also das Element mit entsprechender id aus dem HTML-Dokument nehmen und dort hineinkopieren.


Ich hoffe, ich hab das jetzt ausreichend verständlich erklärt… Ist nicht so einfach :))
Ist das so irgendwie machbar?


Liebe Grüße
…
 
Habe jetzt schon die JavaScript Möglichkeit .cloneNode(); gefunden.
Damit funktioniert das allerdings nicht.

Es wird immer nur das erste <li> Element meines <ul>'s kopiert.
Kann mir dabei jemand helfen?!
 
Mit .clonenode sollte es eigentlich gehen. Wie hast Du's denn gemacht? So?

Code:
var elem_copyFrom, elem_copyTo, elem_temp;

elem_copyFrom = document.getElementById("sowienoch"); // <ul id="sowienoch">...</ul>
elem_copyTo = document.getElementById("dahinsolls"); // <div id="dahinsolls">...</div>

elem_temp = elem_copyFrom.cloneNode(true); // Element klonen, einschließlich Unterelemente (deep = true)
elem_copyFrom.parentNode.removeChild(elem_copyFrom); // Original Element löschen, da sonst doppelte ID
elem_copyTo.appendChild(elem_temp); // kopiertes Element entsprechend einfügen
 
Ich muss zugeben, dass ich mich sehr sehr blöd angestellt habe.
Das war mal wieder das typische "ich schau überall hin, nur da nicht, wo der Fehler liegt".

Es hat funktioniert. Das konnte ich allerdings nicht sehen, da das ganze schwarz auf schwarz war.
Also der profane Fehler, der einem immer unglaublich peinlich ist, weil man mindestens zwei Tage auf Fehlersuche war.

Also. Sorry für das unsinnige posting. Vielleicht hilfts ja wem anders :)
Und danke für Deine Antwort!

Was mich jetzt aber schon interessiert ist das mit den doppelten ID's. Kann das zu Problemen führen, wenn ich die originalen Elemente nicht entferne?
Oder wird dann mit den doppelten ID's einfach jede Veränderung auf beide Elemente angewandt?


Grüße!
 
Na das kenn ich nur zu gut, die einfachen Ursachen sieht man immer nicht. ;)

Naja eine ID muss laut Spezifikation eindeutig gewählt werden, darum sind auch Funktionen wie getElementsByID darauf ausgelegt, nur ein Element zu liefern, was wiederum bedeutet, dass es ist nicht klar definiert ist, wie der Browser bzw. dessen JS Engine damit umgeht – also ob Änderungen auf beide Elemente, das erste oder das n-te Vorkommen der ID angewandt werden. Das kannst Du zwar ausprobieren aber falls ein Browser irgendwann sein Verhalten diesbezüglich ändert, oder JS irgendwann mal „strict“ wird und solche Fehler nicht mehr toleriert, dann funktioniert dein Skript nicht mehr. Zumal Du ganz neben bei mit einer doppelten ID auch invalides HTML erzeugst, würde ich wirklich 2 verschiedene IDs verwenden. ;)