How to add a div dynamically by using Dojo?

2019-04-30 15:03发布

I have a the following static div:

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

I want to add a div with id "div1_1" within div1 dynamically by using dojo. How can I do it?

6条回答
冷血范
2楼-- · 2019-04-30 15:36

Another option using flexible dojo.place:

dojo.place("<div id='div1_1'></div>", "div1", /*optional*/ "only");
查看更多
我想做一个坏孩纸
3楼-- · 2019-04-30 15:41

dojo/dom-construct also can be used for creating new nodes.

A sample usage is as follows;

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()));
});

dojo/dom-construct arguments are

  1. tag (div, h, img, li etc.)
  2. attributes ( new nodes attributes)
  3. reference node (where to place the new node)
  4. position (default last)

you can checkout the documentation for more information.

查看更多
Summer. ? 凉城
4楼-- · 2019-04-30 15:55

You can do it using just Dojo Base — no need to include anything, if you use the trunk or Dojo 1.3:

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

This line creates a div with id "div1_1" and appends it to the element with id "div1". Obviously you can add more attributes and styles in one go — read all about it in the documentation for dojo.create().

查看更多
smile是对你的礼貌
5楼-- · 2019-04-30 15:55
var divNode = document.createElement("div");
divNode.id = "div1_1";
document.body.appendChild( divNode );

This is a good way, it helps get past some node referencing issues in IE7 and you can continue to use the reference to the divNode later.

查看更多
别忘想泡老子
6楼-- · 2019-04-30 15:57
// dojo 1.7+ (AMD)
var n = domConstruct.create("div");
// dojo < 1.7
var n = dojo.create("div");
查看更多
够拽才男人
7楼-- · 2019-04-30 15:59
dojo.html.set(dojo.byId("div1"), "<div id='div1_1'></div>");
查看更多
登录 后发表回答