2016-12-13 19 views
1

私はこの両者の違いであるかを把握しようとしている:のdocument.createElement()() - Javascriptを

// first one 
var h1 = document.createElement('h1'); 
var t = document.createTextNode('hey'); 
h1.appendChild(t); 
document.body.appendChild(h1); 

// second one 
document.body.appendChild(document.createElement('h1').appendChild(document.createTextNode('hey'))); 

Document.createElement())最初は、(完璧に動作しますが、2番目Document.createTextNode())はそうではありません。

+1

'appendChild'が追加ノードを返すので、あなたが身体にテキストノードを追加しようとしているので... 。 – Li357

+0

'document.createElement( 'h1')の結果。appendChild(document.createTextNode( 'hey')'はテキストノードです。したがって、本文ノードを本文に追加します。 –

+0

[Document.createElement + Document .createTextNode one-liner?](http://stackoverflow.com/questions/23775976/createelement-createtextnode-oneliner) –

答えて

1

戻り値appendChildは、子を追加したものです。

document.body.appendChild(document.createElement('h1').appendChild(document.createTextNode('hey'))); 

それはに分かれます:我々は、変数を追加するのであれば

body

textを追加は
var text = document.createTextNode('hey'); 
var h1 = document.createElement('h1'); 
h1.appendChild(text); 
document.body.appendChild(text); 

h1からtextを削除します。

h1はどこにも追加されないため、破棄されます。

+0

これでいいですよ... –

+0

今、 'document.body .appendChild(document.createElement( 'h1')); 'およびこのh1タグにはidがありません。このタグにテキストを追加するにはどうすればよいですか? –

+0

文書を検索する必要があります。変数を使用します。 1つのステートメントに複数の操作を詰め込まないでください。 – Quentin

0

私はそれを行うための方法を見つける:(ちょうど終わり.parentNodeを追加)

document.body.appendChild(document.createElement('h1').appendChild(document.createTextNode('hey')).parentNode); 
関連する問題