获取元素内的所有小部件

pei*_*rix 6 dojo

dojo文档开始dijit.registry,我看到该forEach方法接受最后一个参数thisObject.但它不是那个对象的方式.它是一个dijit小部件还是一个dojo对象?

我想破坏(将由AJAX被替换的元素)内的所有部件,使他们能够再次没有冲突的ID的解析.

dijit.registry.forEach(function(w) {
    w.destroyRecursive();
}, dojo.byId("ajaxElement"));
Run Code Online (Sandbox Code Playgroud)

但这会破坏网页上的所有小部件......

Ale*_*eng 3

thisObject调用作为 的第一个参数传入的函数的作用域对象forEach

在这种情况下,您可以使用以下几种解决方案:

1)用于dijit.findWidgets查找DOM节点中的所有dijit并将其一一销毁。dijit.findWidgets 返回以 domnode 作为参数的小部件数组 2)dojo.parser.parse返回它创建的所有 dijit 的数组,存储该数组并在dijit.parser.parse再次调用之前销毁 dijit。

3) 用于dijit.registry.filter过滤掉您想要保留的 dijis。