dojo创建新dom节点的问题

时间:2011-02-07 00:44:43

标签: dom dojo

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

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

我收到一条消息:

  

TypeError:refNode.appendChild不是   功能

这条消息对我来说没有意义,因为在检查ul的值时我发现它是一个元素并且它已经有两个孩子......我继续尝试dojo.create允许的更多程序化构建( );通过以下几行:

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

这会产生错误:

  

TypeError:doc is undefined

这真是令人困惑,因为ul元素被定义了...我决定我应该尝试将相同的li元素添加到doc体中,所以我去尝试了:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

应该是:

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

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

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

答案 1 :(得分:-2)

<很可能是Senador忘了在dojo.ready中附上dom操作。 doc未定义==文档尚未就绪。