menu
書いてる野郎
orebike@gmail.com
子要素は
hogeparent.removeChild(hogechild);
で削除する。これはオブジェクトをあくまで親要素から引き剥がすだけであって、GC によってオブジェクトを破壊するわけではない
親ノード.insertBefore(前に挿入したいヤツ, 挿入されるやつ);
実際には交換ではなくて交換される側がremoveChildされる。つまり画面に貼り付けられた2要素を交換すると片方が消えてしまう。
親ノード.replaceChild(入れたいやつ, 交換されるやつ);
var hoge = document.createElement("img"); document.body.appendChild(hoge); document.body.appendChild(hoge);
2つの DOM が表示される直感だが、1個しか出ない。DOMは画面上に1個しか存在できない。
先に存在するほうが優先されて、後の変更は無視される。 これは DOM を JavaScript のオブジェクトでラッピングして操作する際にバグになりやすい。
画面表示のために DOM をハンドリングするときは常に引き剥がす処理を先行して行わなければ、 後続の貼り付ける処理で何も起きなくなる。
単に a タグを作りたいなら
var elmA = document.createElement("a"); elmA.textContent = "hoge"; elmA.href = "http://example.com";
この要素は後は、getElementById で取得したモノと同様に扱うことができる。