Dom 如何作为自定义dojo/dijit小部件的节点列表访问容器节点

Dom 如何作为自定义dojo/dijit小部件的节点列表访问容器节点,dom,dojo,Dom,Dojo,我正在尝试在dojo中创建一个自定义模板小部件。我需要对模板的containerNode进行一些操作,并希望将节点用作dojo.NodeList。我似乎无法让事情按我所希望的那样运行。例如,我需要能够从containerNode中“推/弹出/移位/取消移位”子项。如果我执行以下操作来“添加”子DOM节点,它将正常工作: var scrollPageItem = new _ScrollPageItem({...},"..."); this.containerNode.appendChild(scr

我正在尝试在dojo中创建一个自定义模板小部件。我需要对模板的
containerNode
进行一些操作,并希望将节点用作
dojo.NodeList
。我似乎无法让事情按我所希望的那样运行。例如,我需要能够从
containerNode
中“推/弹出/移位/取消移位”子项。如果我执行以下操作来“添加”子DOM节点,它将正常工作:

var scrollPageItem = new _ScrollPageItem({...},"...");
this.containerNode.appendChild(scrollPageItem.domNode);
但这似乎不起作用:

var scrollPageItem = new _ScrollPageItem({...},"...");
var nl = new dojo.NodeList(this.containerNode);
nl.push(scrollPageItem.domNode);
这也不是:

var scrollPageItem = new _ScrollPageItem({...},"...");
var nl = new dojo.NodeList(this.containerNode.children);
nl.push(scrollPageItem.domNode);

在其他两种情况下,
nl.push
似乎什么都不做,而浏览DOM似乎没有添加任何内容。关于如何在内部将
dojoAttachPoint
节点转换为
dojo.NodeList

dojo.NodeList只是一个修饰数组,因此对其使用push()方法只需将scrollPageItem.domNode推送到dojo.NodeList的数组中,而不将其添加到DOM中。此外,您可以使用dojo.query()并传递节点以创建新的节点列表,这样可以节省一些键入工作,而且您不必担心忘记“new”:

或者,更直接的非dojo.NodeList路由:

dojo.place(scrollPageItem.domNode, this.containerNode);

是的,这就是我意识到的。我曾假设,从NodeItem移动和取消移动domNodes会将它们添加到DOM中,但事实并非如此。我通过使用其他DOM函数添加和删除内容来解决这个问题。谢谢你的帮助!
dojo.place(scrollPageItem.domNode, this.containerNode);