2012-02-10 12 views
0

このhtmlコードをjavascriptに変換して、htmlコードの<div>に動的に追加できるようにしようとしています。ダイナミックな入力のためにhtmlコードをjavascriptに変換する

The html code is 
<img src="images/bg_fav.png" alt="" width="199" height="199" class="circle"/> 
<a href="#" class="icon"></a> 
<h2>Filename</h2> 
<ul> 
<li><a href="#">Add</a></li> 
</ul> 

私はこのコードをjavascriptに変換する必要があります。私はこのようにそれをやってみましたが、動作していないよう:

div1 = document.getElementById('div1'); 
a = document.createElement('img'); 
a.setAttribute('src','images/bg_shop.png'); 
a.setAttribute('alt',''); 
a.setAttribute('width','199'); 
a.setAttribute('height','199'); 
a.setAttribute('className','circle'); 

b=document.createElement('a'); 
b.setAttribute('className','icon'); 

c=document.createElement('h2'); 
c.value="filename"; 
c.name="filename"; 
c.id ="filename"; 

d=document.createElement('ul'); 
d.innerHTML="<li><a href='#'>add</a></li>" 

div1.appendChild(a); 
div1.appendChild(b); 
div1.appendChild(c); 
div1.appendChild(d); 
+1

なぜ機能しないのですか? JavaScriptエラーがありますか?生成されたhtmlに問題がありますか? –

+0

答えはありませんが、考慮すべき点はJSテンプレートエンジンを使用することです:http://stackoverflow.com/questions/7788611/what-javascript-template-engines-you-recommend 。 HTMLを構築する際に、手動でDOMノードやテキストをストリング化するよりも、あまり苦労しません。乾杯。 – artlung

+0

IDがdiv1の要素がありません。そこに1つを貼ると、うまく動作します。それ以外の場合は、 "nullの"メソッドappendChild 'を呼び出すことはできませんエラーが発生します。 – j08691

答えて

1

div1要素を決して追加しませんでした。

他のいくつかの問題:

  • classNameは財産ではなく、属性です。属性を設定する場合は、代わりに平文classを使用してください。
  • 要素は、name,idおよびvalue属性を受け取ります。これらの属性は意味をなさない。あなたはどういう意味ですか:

    h2.textContent = "filename"; //innerText for IE 
    
  • 最後に、変数を宣言していません。一部のブラウザは、存在しない変数に値を割り当てることを拒否します。あなたは新しい変数:)

    divdiv1のIDですでに存在している提供する私のためにうまく動作

    を宣言するときvarを使用してください

    var div1 = ... 
    
0

構文はどちらかである:

a.className = "circle"; 

OR

a.setAttribute("class","circle"); 

決してミックスと-一致。

aタグのhref属性の設定も省略しています。

なぜh2value,またはidを設定していますか? <h2 value="filename" name="filename" id="filename" />が表示されますか?もちろん違います。 c.innerHTML = "Filename";または「適切な」方法を使用してください:c.appendChild(document.createTextNode("Filename"));

0

:変数はvarキーワードによって宣言されています。

See this fiddle

けれどもまた、ロブとKolinkは、あなただけの必要なHTMLコードの文字列を作成し、HTMLとそれを追加することができるなど

0

属性/クラスのあなたの設定について述べてきたものに注意してください親divのプロパティ。これは単純なテンプレートであり、ほとんどの場合かなりうまく動作します。

実行時に一部のプロパティを編集する必要がある場合にのみ、取得しているアプローチを取る必要があります。静的コードの場合、そのような複雑なアプローチをとる必要はありません。

function htmlToBeRendered() { 
    var html = 
     "<img src=\"images\\bg_fav.png\\" alt=\"\" width=\"199\" height=\"199\" class=\"circle\"/>" + 
     "<a href=\"#\" class=\"icon\"></a>" + 
     "<h2>Filename</h2>" + 
     "<ul>" + 
      "<li><a href=\"#\">Add</a></li>" + 
     "</ul>"; 
    return html; 
}; 
+0

あなたのおかげで、私はあなたの提案をすべて実装しました。 もう一度ありがとう! –

0

はあなたがデバッグするhttp://getfirebug.com/のような開発ツールを使用してみましたか?あなたのページにID「div1」の要素はありますか?

関連する問題