2009-03-26 27 views
5

私は次の静的div要素を持っている:Dojoを使用してdivを動的に追加する方法は?

<body> 
    <div id="div1"></div> 
.... 

私は動的に道場を使用してDIV1内のID「div1_1」とdiv要素を追加します。どうしたらいいですか?

+0

私が好む内側のdivは、縦と横の中央に配置されています。 –

+0

Dojo 0.9以降またはそれより古い0.4? – kazanaki

答えて

12

あなたがトランクや道場1.3を使用する場合、何を含めるようにちょうど道場ベース—必要はありませんを使用してそれを行うことができます。

dojo.create("div", {id: "div1_1"}, "div1"); 

は、この行は、ID「div1_1」とアペンドとdiv要素を作成しますこれはidが "div1"の要素に適用されます。明らかに、1つの属性とスタイルを追加することができます— the documentation for dojo.create()のすべてを読んでください。

0
dojo.html.set(dojo.byId("div1"), "<div id='div1_1'></div>"); 
+0

dojo.htmlにdojo.request( "...")を追加する必要があると思います。パッケージとは何ですか? –

+0

申し訳ありませんが、それはdojo.require(...) –

+0

のようなものにする必要があります:dojo.require( "dojo.html"); –

0
var divNode = document.createElement("div"); 
divNode.id = "div1_1"; 
document.body.appendChild(divNode); 

これは良い方法です。これは、IE7で問題を参照しているノードを過ぎ去って、後でdivNodeへの参照を引き続き使用するのに役立ちます。

+0

このディスプレイにはエラーがあります:「div」構造体が見つかりません。 –

+0

divNode、divではありません。 – Dereckson

4

フレキシブルdojo.placeを使用して別のオプション:

dojo.place("<div id='div1_1'></div>", "div1", /*optional*/ "only"); 
3
// dojo 1.7+ (AMD) 
var n = domConstruct.create("div"); 
// dojo < 1.7 
var n = dojo.create("div"); 
2

dojo/dom-constructは、新しいノードを作成するために使用することができます。

サンプルの使用方法は次のとおりです。

require([ "dojo/dom-construct", "dojo/_base/window" ], function(
     domConstruct, win) { 
    // creates a new div and append it as the last child of the body 
    domConstruct.create("div", null, win.body())); 
}); 

道場/ DOM構築物引数が設置場所を

  1. タグ(DIV、H、IMG、リチウムなど)
  2. アトリビュート(新しいノード属性)
  3. 基準ノード(あります新しいノード)あなたがチェックすることができ
  4. 位置(デフォルト最後)

詳細については、ドキュメントを参照してください。

関連する問題