JavaScriptとDOMの使用を開始していますが、jQueryなどから故意に遠ざかりようとしています。このことを念頭に置いて、チュートリアルは、一般的にこのような例を提供します。これを合理化し、変数を回避するための試みにおいて基本的なDOMチェーニングの理解
h = document.createElement("h1");
t = document.createTextNode("Hello.");
h.appendChild(t);
document.body.appendChild(h);
、私は正常に次のようにチェーン:
document.body.appendChild(document.createElement("h1")).appendChild(document.createTextNode("Hello."));
これは動作しますが、私が試しました以下で
h = document.createElement("h1");
t = document.createTextNode("Put this on top.");
h.appendChild(t);
document.body.insertBefore(h,document.body.firstChild);
:以下プリペンド操作を短縮する
document.body.insertBefore(document.createElement("h1")).appendChild(document.createTextNode("Put this on top."),document.body.firstChild);
しかし今回は、希望通りに動作しませんでした。テキストは、BODY要素の最後に置かれ、前置符号の代わりに追加を取得します。
私は最初のケースがうまくいくと思っていますが、私はこの連鎖練習で何が間違っているのか分かりません。
:あなたは.parentNodeプロパティを使用する必要が1行でこれを達成するために) 'は' createElement() 'の後に偽ります。だからチェーンは 'appendChild()'メソッドで続行されているようです。私は驚いて、私は間違いを予想していただろう。 –
このような連鎖は、これらのメソッドの仕組みを理解する方法として興味深いものですが、その結果は読みにくいです。スクロールを右にスクロールすると厄介なことになりますが、 '.appendChild()'の前に改行を入れたり、1つまたは複数のメソッドから改行したりすることができます。 – nnnnnn
"変数を避ける " - コードの読み込み、保守、拡張を難しくしているだけです。 – jbabey