获取元素内的所有小部件

时间:2010-05-31 08:42:51

标签: dojo

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

我想销毁一个元素中的所有小部件(将被AJAX取代),这样它们就可以再次被解析,而不会出现ID的冲突。

dijit.registry.forEach(function(w) {
    w.destroyRecursive();
}, dojo.byId("ajaxElement"));

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

1 个答案:

答案 0 :(得分:3)

thisObject是范围对象,用于调用作为forEach的第一个参数传入的函数。

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

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

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