を使用して要素を作成した場合document.createElement()
、その親は何ですか? 体ですか?このような基本的な質問で申し訳ありませんが、JavaScript を使用して親を見つけようとしたところ、オブジェクトが返されましたが、これについてはよくわかりません。
ありがとう
を使用して要素を作成した場合document.createElement()
、その親は何ですか? 体ですか?このような基本的な質問で申し訳ありませんが、JavaScript を使用して親を見つけようとしたところ、オブジェクトが返されましたが、これについてはよくわかりません。
ありがとう
要素はメモリ内に作成され、(まだ) 親はありません。
appendChild()
または同様の方法を使用して要素を DOM に配置すると、親が作成されます。
null
存在しない要素にアクセスしようとすると、JavaScript が戻ります。これには、メモリ内にのみ存在する要素の親が含まれます。
要素にアクセスするには、変数 f.ex に割り当てます。
var elem = document.createElement('div'); // elem is now the element reference
DOM に追加していない要素は、メモリ内にのみ存在し、参照されなくなると消去されるため、明示的に削除する必要はありません。
何かに付けるまでは何もない ( null
)。
> x = document.createElement("div");
<div></div>
> x.parentNode
null
> document.body.appendChild(x);
<div></div>
> x.parentNode
<body></body>
コメントに関しては、要素の配列が指定[x, y, z]
されている場合、DOM に挿入されるかどうかに関係なく、次のように DOM 内の要素を削除できます。
var els = [x, y, z];
for (var i=0;i<els.length;i++) {
if (els[i].parentNode) {
els[i].parentNode.removeChild(els[i]);
}
}
... DOM 内の要素のみが truey を持つためですparentNode
。