5

我有以下静态 div:

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

我想通过使用dojo在div1中动态添加一个id为“div1_1”的div。我该怎么做?

4

6 回答 6

13

你可以只使用 Dojo Base 来完成——不需要包含任何东西,如果你使用的是 trunk 或 Dojo 1.3:

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

此行创建一个 id 为“div1_1”的 div,并将其附加到 id 为“div1”的元素。显然,您可以一次性添加更多属性和样式 — 阅读dojo.create() 文档中的所有内容。

于 2009-03-27T05:49:47.663 回答
4

使用灵活dojo.place 的另一个选项:

dojo.place("<div id='div1_1'></div>", "div1", /*optional*/ "only");
于 2012-03-20T14:00:40.533 回答
3
// dojo 1.7+ (AMD)
var n = domConstruct.create("div");
// dojo < 1.7
var n = dojo.create("div");
于 2012-04-07T08:55:43.283 回答
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()));
});

dojo/dom-construct 参数是

  1. 标签(div、h、img、li 等)
  2. 属性(新节点属性)
  3. 参考节点(放置新节点的位置)
  4. 位置(默认最后)

您可以查看文档以获取更多信息。

于 2014-05-23T14:53:38.863 回答
0
dojo.html.set(dojo.byId("div1"), "<div id='div1_1'></div>");
于 2009-03-26T20:37:44.150 回答
0
var divNode = document.createElement("div");
divNode.id = "div1_1";
document.body.appendChild( divNode );

这是一个好方法,它有助于解决 IE7 中的一些节点引用问题,您可以稍后继续使用对 divNode 的引用。

于 2009-03-31T18:03:38.177 回答