2016-04-17 15 views
0

私は他の誰かによって、ウェブページのソースコードでこれらのコードスニペットを見てきました:JavaScriptのreplace-functionとdocument.create()の組み合わせ - このコードは何ですか?

<script> 
"'article aside footer header nav section video'".replace(
    /\w+/g, 
    function(n){ 
     document.createElement(n) 
    } 
) 
</script> 

はそれで意図何誰も考えていますか?

7 HTML要素は、文字列に基づいて入力として作成されます。 createElementは、要素への参照を返します。しかし、その参照では何も行われません。変数にも格納されていません。 DOMツリーにはるかに少ない。

So: これらのコードの目的は何ですか?

答えて

1

それは単語のリストを反復処理するちょっと「スマート」な方法です:

"'article aside footer header nav section video'".replace(
 
    /\w+/g, 
 
    function(w) { document.write(w + "<br>") } 
 
)

タグのリストは、いくつかの外部ソースから来るのでおそらく著者はこのルートを取りました。それ以外の場合は、通常の配列を使用する必要があります。

tags = ["article", "aside", "footer", "header", "nav", "section", "video"] 
 

 
tags.forEach(function(tag) { 
 
    document.createElement(tag); 
 
});

+0

どうもありがとうございました。最初の例では、次のようになります。 "
脇に
フッター
ヘッダー
nav
セクション
ビデオ
"を作成します。私がまだ想像するのは難しいことです:HTML文書に自動的に追加されるのはなぜですか?それはまだRAMに入っている文字列です。 – ts248

+0

@ ts248: 'document.write'は反復がどのように動作するかを示すためのものです。何も作成しようとしていません。 – georg

関連する問題