2011-02-07 48 views
2

我想创建一个新的节点,是我在文档中有一个现有的ul节点的子节点,但不管我如何继续我似乎得到一个错误。以下两种方法是我已经试过的方法:dojo问题与创建新的DOM节点

var ul = dojo.query('#highlights ul').0; 
dojo.place("<li></li>", ul); 

,我得到一个消息:

TypeError: refNode.appendChild is not a function

此消息并没有任何意义,我因为检查我发现,UL的价值它是一个元素,它已经有两个孩子了......我继续尝试dojo.create()允许的更多编程构建;通过下面几行:

var ul = dojo.query('#highlights ul').0; 
dojo.create("li", null, ul); 

和由此产生的错误:

TypeError: doc is undefined

这实在是莫名其妙,因为我的UI元素被定义......我决定,我应该只是尝试添加相同李元素添加到文档的身体,让我去,并试图:

dojo.create("li", null, dojo.body()); 

其返回没有错误,但在检查文档源没有什么变化....那么,有什么我失踪?我假设我不需要任何文件来使用这些,是不是一个错误的假设?包含此代码的加载函数位于外部文件中以帮助我组织代码,这是否会导致此问题?

该函数在dojo.addOnLoad块中调用,以防止调用异步时出现问题,这可能是问题的一部分吗?

回答

3

你的问题是你没有从你的查询中获取节点。

它应该是:

var ul = dojo.query('#highlights ul')[0]; 

var ul = dojo.query('#highlights ul').0; 

我很惊讶,你的浏览器没有错误就行dojo.query

+0

好的,我会给它一个镜头,我认为。和[]大致相同,但? – xenador 2011-02-21 14:26:47

-2

大概xenador忘了在dojo.ready中附上dom操作。文档未定义==文档未准备好。