私はこのようなことを学んでいるので、私のコードや質問が非常に基本的であれば許してください。Javascript:DOM、appendChild - いくつかの質問
私の「作業コード」あなたは私がこれまで持っているものを知っているだけのように、(エラーなしなど):
var t = document.createElement("table"),
tr = document.createElement("tr"),
tr2 = document.createElement("tr"),
td = document.createElement("td"),
td2 = document.createElement("td"),
a = document.createElement("a"),
strong = document.createElement("strong");
t.style.width = "80%";
t.style.border = "0";
t.cellspacing = "2";
t.cellpadding = "2";
。
for (var i = 0; i < nodes.length; i++) {
the_table_color = nodes[i].getAttribute("table_color");
the_type = nodes[i].getAttribute("type");
alt_link = nodes[i].getAttribute("alt_link");
link_for_deletion = nodes[i].getAttribute("link_for_deletion");
comment = nodes[i].getAttribute("comment");
tr.bgColor = the_table_color;
t.appendChild(tr);
td.width = "16%";
td.vAlign = "top";
tr.appendChild(td);
strong.appendChild(document.createTextNode(the_type));
td.appendChild(strong);
td.width = "16%";
td.vAlign = "top";
tr.appendChild(td);
td2.width = "70%";
td2.vAlign = "top";
tr.appendChild(td2);
a.href = alt_link;
a.appendChild(document.createTextNode(alt_link));
a.target = "_blank";
td2.appendChild(a);
}
あなたは上から見ることができるように私は、このビットがあります。
td = document.createElement("td"),
td2 = document.createElement("td"),
をし、その理由は、私は「TD」は再び宣言されていない場合は、最初の1が上書きされ、され、もう1つは表示されません...
A)これは正しい方法ですか? (これは正しいアプローチがあるかどうかわからない、私はそれを動作させるために別の変数を宣言するのソリューションについて来たが、それは余分なコードのように思える)
その後のコード行:
strong.appendChild(document.createTextNode(the_type));
だけ(
for()ループの最初の反復の例はabc
で、2番目のループはdef
です。最初はabcdefを表示し、2番目はdefcdefを表示します。
B)それはなぜですか、どうすれば修正できますか?
ありがとうございます!
まず、コードを正しくインデントする方法を学びます。 WebStorm(またはjsFiddle)のようなエディタは、そのためのボタンを持っています... –
forループの最上位にあるこれらの変数はすべて宣言されていなければなりません...あなたはグローバルな名前空間を汚染しています。 –
男に休憩を与えなさい - 彼は彼が学習していると述べた。 –