1

を使用して要素を作成した場合document.createElement()、その親は何ですか? 体ですか?このような基本的な質問で申し訳ありませんが、JavaScript を使用して親を見つけようとしたところ、オブジェクトが返されましたが、これについてはよくわかりません。

ありがとう

4

2 に答える 2

4

要素はメモリ内に作成され、(まだ) 親はありません。

appendChild()または同様の方法を使用して要素を DOM に配置すると、親が作成されます。

null存在しない要素にアクセスしようとすると、JavaScript が戻ります。これには、メモリ内にのみ存在する要素の親が含まれます。

要素にアクセスするには、変数 f.ex に割り当てます。

var elem = document.createElement('div'); // elem is now the element reference

DOM に追加していない要素は、メモリ内にのみ存在し、参照されなくなると消去されるため、明示的に削除する必要はありません。

于 2013-07-27T10:43:03.963 に答える
2

何かに付けるまでは何もない ( null)。

> x = document.createElement("div");
<div>​&lt;/div>​
> x.parentNode
null
> document.body.appendChild(x); 
<div>​&lt;/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

于 2013-07-27T10:43:14.027 に答える