Ich beginne mit JavaScript und dem DOM und versuche, zumindest für eine Weile absichtlich von jQuery und ähnlichem Abstand zu halten. Mit dem im Verstand, Tutorials im Allgemeinen ein Beispiel geben, wie dies:Grundlegende DOM-Verkettung verstehen
h = document.createElement("h1");
t = document.createTextNode("Hello.");
h.appendChild(t);
document.body.appendChild(h);
In einem Versuch, diese zu optimieren und Variablen zu vermeiden, ich folgende erfolgreich angekettet:
document.body.appendChild(document.createElement("h1")).appendChild(document.createTextNode("Hello."));
Während das funktioniert, habe ich versucht, zu verkürzen, die folgende Operation prepend:
h = document.createElement("h1");
t = document.createTextNode("Put this on top.");
h.appendChild(t);
document.body.insertBefore(h,document.body.firstChild);
mit folgendem:
document.body.insertBefore(document.createElement("h1")).appendChild(document.createTextNode("Put this on top."),document.body.firstChild);
Diesmal funktionierte es jedoch nicht wie gewünscht: Der Text wurde am Ende des BODY-Elements platziert, um einen Anhang anstelle eines Vorsatzes zu erhalten.
Ich stelle mir vor, der erfolgreiche erste Fall ist nur ein Zufall, aber ich kann nicht sehen, was mit dieser Verkettungspraxis nicht stimmt.
Sie haben Ihre 'insert geschlossen () 'parens nach dem' createElement() '. Also scheint die Kette mit der 'appendChild()' Methode weitergegangen zu sein. Was mich überrascht, hätte ich einen Fehler erwartet. –
Obwohl die Verkettung so interessant ist, um zu verstehen, wie diese Methoden funktionieren, ist das Ergebnis schwerer zu lesen. Nach rechts scrollen, um die ganze Aussage zu sehen, ist irgendwie ärgerlich, aber Sie können einen Zeilenumbruch vor '.appendChild()' oder nach dem öffnenden Parens von einer oder mehreren Methoden einfügen ... – nnnnnn
Verwenden Sie ein Verkleinerungstool, um "zu rationalisieren und Vermeiden Sie Variablen "- Sie machen Ihren Code nur schwieriger zu lesen, zu pflegen und zu erweitern. – jbabey