Hinzufügen neuer Elemente in DOM mit JavaScript (appendChild)

8

Manchmal muss ich Elemente (wie einen neuen Link und ein neues Bild) zu einer bestehenden HTML-Seite hinzufügen, aber ich habe nur Zugriff auf einen kleinen Teil der Seite, weit weg von dem, wo ich Elemente einfügen muss. Ich möchte DOM-basierte JavaScript-Techniken verwenden, und ich muss vermeiden, document.write ().

zu verwenden

Bisher habe ich so etwas verwendet:

%Vor%

Gibt es einen effizienteren Weg, den ich nutzen könnte, um dasselbe zu erreichen? Es scheint alles notwendig zu sein, aber ich würde gerne wissen, ob es einen besseren Weg gibt, wie ich das machen könnte.

    
KatieK 02.06.2010, 22:42
quelle

4 Antworten

13

Es gibt einen effizienteren Weg und scheint, wenn möglich, documentFragments zu verwenden. Schau es dir an: Ссылка . Außerdem sollte dieser Weg weniger fehleranfällig und wartungsfreundlicher sein, als wenn man riesige String-Literale miteinander vermischt und sie als innerHTML einiger anderer DOM-Objekte einstellt.

    
Matias 03.06.2010, 03:33
quelle
6

Beachten Sie, dass innerHTML sowohl nicht standardmässig als auch notorisch Buggy .

    
dplass 03.06.2010 01:53
quelle
2

Damit ist nichts falsch. Die Verwendung von innerHTML wäre marginal schneller und wahrscheinlich weniger Zeichen, aber für etwas von dieser Größenordnung nicht wahrnehmbar, und meine persönliche Präferenz ist für die mehr standardisierten, einheitlich unterstützten und sichereren DOM-Methoden und -Eigenschaften.

Ein kleiner Punkt: Die height - und width -Eigenschaften von <img> -Elemente sollten Zahlen und keine Zeichenfolgen sein.

    
Tim Down 02.06.2010 22:48
quelle
1

Wenn Sie nicht viele Dinge hinzufügen, ist die Art, wie Sie es gemacht haben, ideal gegenüber innerHTML. Wenn Sie es jedoch häufig tun, können Sie einfach eine generische Funktion / ein generisches Objekt erstellen, das die relevanten Informationen als Parameter akzeptiert und die Drecksarbeit erledigt. IE

%Vor%

Ich mache das oft in meinen eigenen Projekten, indem ich Prototypen benutze, um Zeit zu sparen.

    
edl 02.06.2010 23:07
quelle

Tags und Links