1

私はできますdocument.body.childNodes[1]が、なぜこの「document.body.div[1]」ではないのですか。ドキュメントはどのように特別ですか?

何かが足りない場合は申し訳ありません。

このロジックに従うと、ドキュメントは特別なものではなく、本文はこのような方法でのみアクセスできるはずです。

document.childNodes[1]とか、ぐらい。div 本体が 2 番目の要素であると仮定します。

なぜこのように機能するのですか。

document.body.etc << できるけど…

document.body.div << これではない。代わりにこれ...

document.body.childNodes[1] << div が 2 番目の要素であると動作します!

document.childNodes[1] << では、[1] のように 2 番目の要素を指定して body にアクセスする唯一の方法ではないのはなぜですか。

document.body.div.p << 私はこれをしたい、HTMLオブジェクトモデルの私の理解ではそれが可能であるべきです。

4

2 に答える 2

1

document.childNodes[0]ドキュメント全体の最初のタグdocument.body.childNodes[0]を返しますが、 body タグの下の最初のタグを返します。

于 2013-05-21T03:51:45.647 に答える
1

あなたのhtmlの構造について正確にはわかりませんが:

document.childNodes[0]html の最初のノードを取得します。(ここでは、たとえばstackoverflowで<!DOCTYPE html>

この方法でトラバースしてボディを取得したい場合は、次のようにします。

document.childNodes[1].childNodes[2](このページの本文を取得します)

基本的に、要素の順序に注意する必要があります。対照的に、名前付き要素を使用して DOM をトラバースすることは、まったく異なります。これが役立つことを願っています。

于 2013-05-21T03:55:08.537 に答える