JavaScriptで、新しいdivを動的に作成、変更、移動、可能な限り変更する方法は?


82

ページの読み込み時に新しいdivを作成したいと思います。これらのdivは、JSONファイルの外部データに応じて変化する順序付きグループとして表示されます。100を超えるdivが必要なため、forループを使用してこれを行う必要があります。

したがって、高さ、幅、上/左などに関して、作成された各divを変更できる必要があります。それでも、document.getElementById("created_div").style.whatever何もしません。新しいdivが1つも表示されません。新しいdivの高さ/幅を500px、背景を「赤」などに設定しましたが、新しいdivが確実に表示されることはありません。

私は何が間違っているのですか?


2
divの

1
$( "#box0")。append( '<div id = "created_div"> </ div>');
エリックネルソン

これをループで実行している場合、同じ識別子で100個のdivを作成しようとしていることを意味しますか?
Evan Trimboli 2012

ブラウザコンソールを見てください...エラーはありますか?IDを繰り返すべきではありませんが、セレクターが存在し、エラーがスローされない場合は、IDの挿入を停止しないでください。エラーは最初の重要なチェックです
charlietfl 2012

それらを作成する以外に、DOMに挿入しますか?
Gabriele Petrioli 2012

回答:


425

これは、DOM操作の基本をカバーしています。新しく作成されたノードをドキュメント内に表示するには、本体または本体に含まれるノードに要素を追加する必要があることに注意してください。


-1

JQueryを試しましたか?バニラJavaScriptは難しい場合があります。これを使用してみてください:

$('.container-element').add('<div>Insert Div Content</div>');

.container-elementは、要素をクラス「container-element」(お​​そらく、divを挿入する親要素)でマークするJQueryセレクターです。次に、add()関数はHTMLをcontainer-elementに挿入します。


まあ、私はそれを手に入れました。パディングを0より大きく設定する必要がありました。高さと幅がそれぞれ64に設定されていても。ブレ。子divが通常のdivのように動作する方法はありますか?目標は、各divをリンクのように機能させることです。ゲームのウェブサイトの動的リストを作成しようとしています; /
Erik Nelson

1
私はこれに同意しない、innerHTMLプロパティは(そのために何jqueryの用途)ではありません標準、および標準に従わないの価格はmissbehaviourにつながる可能性があります。また、私にとっては、ノード要素を追加するのではなく、プランのhtml文字列をDOMツリーに追加することは意味がありません。
StormByte 2013年

2
DOMツリー全体が単純な古いHTMLとして始まり、innerHTMLがまさにそれであると考えると、要素に含まれるHTMLのどちらかに問題があることは、DOMが汚染されているために使用すべきではないと言っているのと同じです。プレーンな古いHTML。
ロドニーP.バルバティ2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.