在Dojo中创建父元素内的元素

时间:2013-10-09 16:46:12

标签: javascript html dom dojo

我可以像这样在身体内创建一个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'));

如何在DOM中已存在的父div内创建div

3 个答案:

答案 0 :(得分:1)

您发布的解决方案完全有效。几个选择:

无需查找dom节点,可以传入一个String(节点的id)

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#place也可以使用可选的position参数。 API Docs有更多信息

答案 1 :(得分:1)

如果你需要定位一个类而不是一个元素id,我发现以下是有效且易于维护的方法:

-M

鉴于最好定位一个id而不是一个类,但是当你依赖外部库并不总是可行时。

答案 2 :(得分: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'));