如何删除id以xyz开头的所有Dojo小部件

时间:2013-06-20 11:24:46

标签: dojo widget destroy

我有一个名为idname1idname2idname88等ID的scrollableViews。我想销毁所有名称以“idname”开头的小部件。

我试过这个:

var widgets = dijit.findWidgets("id^=divNodes");
dojo.forEach(widgets, function(w) {
w.destroyRecursive(false);

似乎我无法使用dijit.findWidgets("id^=divNodes")

什么对此有用?

1 个答案:

答案 0 :(得分:0)

来自文档...

  

registry.findWidgets返回一个包含所有非嵌套小部件的数组   给定的DOM节点。

https://dojotoolkit.org/reference-guide/1.8/dijit/registry.html

您可以自己迭代注册表

require(["dojo/_base/array", "dijit/registry"], function(array, registry){
    var startsWith = function(wholeString, lookFor) {
        return wholeString.slice(0, lookFor.length) == lookFor}
    };

    var toDestroy = array.filter(registry.toArray(), 
        function(w) { return startsWith(w.id, 'divNodes'); });

    array.forEach(toDestroy, function(w) { w.destroyRecursive(false); });
});