dojo在创建新dom节点时遇到的问题

dojo在创建新dom节点时遇到的问题,dom,dojo,Dom,Dojo,我试图创建一个新节点,它是文档中现有ul节点的子节点,但无论我如何继续,我似乎都会得到一个错误。以下两种方法是我尝试过的方法: var ul = dojo.query('#highlights ul').0; dojo.place("<li></li>", ul); 这就产生了一个错误: 类型错误:文档未定义 这真的让我很困惑,因为ul元素已经定义……我决定我应该尝试将相同的li元素添加到文档正文中,所以我去尝试: dojo.create("li", null, doj

我试图创建一个新节点,它是文档中现有ul节点的子节点,但无论我如何继续,我似乎都会得到一个错误。以下两种方法是我尝试过的方法:

var ul = dojo.query('#highlights ul').0;
dojo.place("<li></li>", ul);
这就产生了一个错误:

类型错误:文档未定义

这真的让我很困惑,因为ul元素已经定义……我决定我应该尝试将相同的li元素添加到文档正文中,所以我去尝试:

dojo.create("li", null, dojo.body());
返回时没有错误,但在检查文档源时没有任何更改……那么我是否缺少了什么?我假设我不需要任何文件来使用这些,这是一个错误的假设吗?包含此代码的load函数位于一个外部文件中,用于帮助我组织代码,这可能是导致问题的原因吗


在dojo.addOnLoad块中调用此函数是为了防止在调用async时出现问题,这可能是问题的一部分吗?

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

应该是:

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


我很惊讶您的浏览器在
dojo.query
行中没有出错。

可能是xenador忘了在dojo.ready中包含dom操作。doc未充分定义==文档未准备好。

好的,我会试一试,我想。和[]大致相当?(对不起,一直按enter键,把评论搞乱了!)这取决于上下文。如果javascript中有一个对象foo,其属性栏的值为'baz',则可以通过foo.bar或foo['bar]访问该对象。他们都一样。但是,dojo.query返回一个数组,因此您正在访问该数组中的第0个元素。你不能用点符号来做这件事。
var ul = dojo.query('#highlights ul')[0];
var ul = dojo.query('#highlights ul').0;