2016-10-25 4 views
0

document.write()を使用してユーザーが見た現在のHTMLページを置き換えることができるようにします。それはHTMLページを置き換えるだけで、私が表示したいテキストは表示されません。私はaddElementの()関数を経由して要素を追加するために自分のコードを使用している場合は、document.write、Array.push、および文字列をまとめる

function addElement(a, b) { 
    var startTag, tagValue, endTag, finalTag; 

    // htmlify 
    if (b === undefined) { 
     startTag = "<p>"; 
     endTag = "</p>"; 
    } else { 
     startTag = "<" + b + ">"; 
     endTag = "</" + b + ">"; 
    } 



    finalTag = startTag + tagValue + endTag; 
    eio.push(finalTag); 
}; 

それはそれは、その後、例えば

addElement("This is a valid h1 tag.", "h1"); 

、ユーザーが有効なタグを作成するために入れたパラメータを取ります

var finalTag = "<" + "h1" + ">" + "This is a valid h1 tag." + "</" + "h1" + ">" 

のようにHTMLタグに解析し、それをeio(変数をもう一度記入)という配列にプッシュします。

eio.push("<h1>This is a valid h1 tag.</h1>"); 

この配列は、displayElements()が呼び出されるまで使用されません。ここでは、forループを使用してすべての異なる文字列をまとめています。ここで私はそれをやった方法は次のとおりです。それは私たちがするdocument.write()関数で使用するとき

function displayElements() { 
    finalString = "<!DOCTYPE html><html><head><title>Hello World!</title></head><body>"; 
    for (i = 0; i === eio.length; i++) { 
     finalString += eio[i]; 
    } 
    finalString += "</body></html>"; 
    document.write(finalString); 
}; 

が再び私たちの例を使用して、finalStringはこの

finalString = "<!DOCTYPE html><html><head><title>Hello World!</title></head><body><h1>This is a valid h1 tag.</h1></body></html>" 

のようになります。このになります。「これは有効なh1タグです。」というHTMLページが表示されます。大きな太字のフォントで、まだ空白の画面が表示されます。しかし興味深いのは、関数を呼び出すとタイトルが更新されますが、ページはまだ空白です。

You can see the entire code here,。

+0

あなたの関数は、渡されない 'tagValue'を使用します。 – Steve

+2

' i = 0; i === eio.length;私は?あなたは '<='を意味しましたか? – sabithpocker

+0

@Steveそれは、それがfinalTag変数に追加されているaddElement関数で使用されているのがわかります... – tufda

答えて

1

sabithpockerと私はすでに2つの問題が指摘されていました。この答えを出すためにそれらを合計します。

addElementメソッドは、引数がaで、何もしません。代わりにローカル変数tagValueを使用しています。 aの値をtagValueに割り当てることで修正できます。

function addElement(a, b) { 
    var startTag, endTag, finalTag; 
    var tagValue = a; 

    // htmlify 
    if (b === undefined) { 
     startTag = "<p>"; 
     endTag = "</p>"; 
    } else { 
     startTag = "<" + b + ">"; 
     endTag = "</" + b + ">"; 
    } 

    finalTag = startTag + tagValue + endTag; 
    eio.push(finalTag); 
}; 

2番目の問題は、displayElementsメソッドのfor-loopのタイプミスです。

for (i = 0; i < eio.length; i++) { 
    finalString += eio[i]; 
} 
関連する問題