Verschieben eines Divs mit Prototyp aus einem Div in ein anderes Div

9

Wie verschiebe ich den Inhalt eines div im Prototyp oder normal-aber-Browser-kompatiblen Javascript auf den Inhalt eines anderen div?

Innerhalb des div ist ein Formular mit IDs und abhängigem Javascript-Code mit Ereignisbeobachtern. Ich möchte nicht, dass das bricht, nur weil ich einen Block im DOM verschoben habe. Eine 'diese innerHTML = diese innerHTML' Lösung ist nicht das, was ich suche. Ich werde das auch tun müssen, wenn das DOM geladen wird.

Ich möchte davon ausgehen:

%Vor%

dazu:

%Vor%

... wenn das Dokument geladen wird und nichts springt.

    
ʍǝɥʇɐɯ 13.06.2011, 10:13
quelle

4 Antworten

36

Sie können dies ganz am Ende des BODY-Tags hinzufügen:

%Vor%

MacGuffin wird automatisch von einem zum anderen verschoben.
Und es wird kein Flackern geben.

    
Mic 13.06.2011, 10:19
quelle
3

Vielleicht kein wichtiger Punkt, aber es gibt keine integrierte JavaScript-Interface-Methode Node.migrateChild (). Wenn ein Fragment bereits einen Elternteil an einer anderen Stelle im DOM hat (wie div id = 'MacGuffin' in Beispielmarkierung oben), löst appendChild () das Argumentfragment in aller Stille von jedem aktuellen Elternteil, bevor es unter dem neuen Elternteil wieder anfügt. In meinen Augen wäre migrateChild () ein semantisch aussagekräftigerer Methodenname als appendChild (), weniger für die Suche nach StackOverflow-Entwicklern, um auf seine leistungsfähigeren Fähigkeiten zu verweisen.

    
rickatech 22.01.2016 16:57
quelle
1

Um den Inhalt von here in there zu verschieben, sind Sie im Grunde nach:

%Vor%

Leider funktioniert das nicht.

Wie bei den anderen beiden Antworten sieht es so aus, als müssten Sie auf einfaches JavaScript zurückgreifen, wobei der Prototyp nur eine Abkürzung für document.getElementById bietet.

%Vor%

(Siehe John Resigns Blog für Leistungsstatistiken zu DocumentFragments: Ссылка )

    
searlea 13.06.2011 12:08
quelle
1

Um den Inhalt von here in there zu verschieben, funktioniert dies, solange here alles umschließt, was Sie verschieben möchten, wie zB <div> :

%Vor%

decendants () gibt ein Array zurück und fügt content ein, also verwenden Sie das erste Element.

    
Jim C 12.09.2011 16:09
quelle

Tags und Links