2013-10-09 2 views
0

я могу создать div внутри тела, как так:Создать элемент внутри родительского элемента в додзё

var n = dojo.create("div", { innerHTML: "<p>helloWorld</p>" }, dojo.body()); 

Я хотел бы создать div внутри моего родительского элемента, как это:

<div id="parent"></div> 

Я попробовал это, но это не похоже на работу:

var n = dojo.create("div", { innerHTML: "<p>helloWorld</p>" }, dojo.query('#parent')); 

Как может Я создаю свой div внутри моего родителя div, который уже существует в DOM?

ответ

1

Решение Размещенное Вами полностью действительным. Несколько вариантов:

Нет необходимости искать узел DOM, вы можете передать в строку (идентификатор узла)

require(["dojo/dom-construct"], function(domConstruct){ 
    var n = domConstruct.create("div", { innerHTML: "<p>helloWorld</p>" }, 'parent'); 
}); 

Или вы могли бы построить узел и поместить его позже с помощью domConstruct #place:

require(["dojo/dom-construct"], function(domConstruct){ 
    var n = domConstruct.create("div", { innerHTML: "<p>helloWorld</p>" }); 
    domConstruct.place(n, 'parent'); 
}); 

domConstruct # место может также принимать необязательный параметр position. API Docs больше информации о его

+0

Это интересно, спасибо. – user1477388

0

То, как я сделал это так (я открыт для любых других решений):

// dojo 1.7+ (AMD) 
require(["dojo/dom-construct"], function(domConstruct){ 
    var n = domConstruct.create("div", { innerHTML: "<p>helloWorld</p>" }, dojo.byId('parent')); 
}); 

// dojo < 1.7 
var n = dojo.create("div", { innerHTML: "<p>helloWorld</p>" }, dojo.byId('parent')); 
1

Если вы должны предназначаться класс вместо элемента ид, я нашел следующее быть и эффективным и легко поддерживать метод:

require([ 
    'dojo/query', 
    'dojo/dom-construct' 
    ], function(
    query, 
    domConstruct, 
){ 
    var parent = query('.someClass')[0]; 
    var child = domConstruct.create('div', { innerHTML: '<p>helloWorld</p>'}); 
    domConstruct.place(child, parent, 'position'); 
}); 

Учитывая это всегда лучше для нацеливания идентификатора вместо класса, но в случаях, когда вы полагаетесь на внешние библиотеки, которые не всегда жизнеспособны.

Смежные вопросы