Как динамически добавить div с помощью Dojo?

У меня есть следующий статический div:

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

Я хочу динамически добавить div с идентификатором "div1_1" в div1 с помощью dojo. Как мне это сделать?


person David.Chu.ca    schedule 26.03.2009    source источник
comment
внутренний div, который я предпочитаю, центрирован по вертикали и горизонтали.   -  person David.Chu.ca    schedule 26.03.2009
comment
С Dojo 0.9+ или более ранней версией 0.4?   -  person kazanaki    schedule 27.03.2009


Ответы (5)


Вы можете сделать это, используя только Dojo Base, не нужно ничего включать, если вы используете магистраль или Dojo 1.3:

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

Эта строка создает div с идентификатором «div1_1» и добавляет его к элементу с идентификатором «div1». Очевидно, что вы можете добавить больше атрибутов и стилей за один раз, прочитайте все об этом в документации для dojo.create() .

person Eugene Lazutkin    schedule 27.03.2009

Другой вариант использования гибкого dojo.place:

dojo.place("<div id='div1_1'></div>", "div1", /*optional*/ "only");
person Kniganapolke    schedule 20.03.2012

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. позиция (по умолчанию последняя)

вы можете проверить документацию для получения дополнительной информации.

person Aksel Fatih    schedule 23.05.2014

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

Это хороший способ, он помогает обойти некоторые проблемы со ссылками на узлы в IE7, и вы можете продолжить использовать ссылку на divNode позже.

person Community    schedule 31.03.2009
comment
Использование этого отображает ошибку: не удается найти конструкцию 'div'. - person Jayprakash Dubey; 14.05.2013

person    schedule
comment
Думаю, мне нужно добавить dojo.request(...) для dojo.html. Что такое пакет? - person David.Chu.ca; 27.03.2009
comment
извините, это должно быть что-то вроде dojo.require(...) - person David.Chu.ca; 27.03.2009
comment
понял: dojo.require(dojo.html); - person David.Chu.ca; 27.03.2009