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

如何删除id以xyz开头的所有Dojo小部件,dojo,widget,destroy,Dojo,Widget,Destroy,我有id名称为idname1、idname2、idname88等的可滚动视图。我想销毁id名称以“idname”开头的所有小部件 我试过这个: var widgets = dijit.findWidgets("id^=divNodes"); dojo.forEach(widgets, function(w) { w.destroyRecursive(false); 似乎我不能使用dijit.findWidgets(“id^=divNodes”)来实现这一点 这有什么用?来自文档 registr

我有id名称为
idname1
idname2
idname88
等的可滚动视图。我想销毁id名称以“idname”开头的所有小部件

我试过这个:

var widgets = dijit.findWidgets("id^=divNodes");
dojo.forEach(widgets, function(w) {
w.destroyRecursive(false);
似乎我不能使用
dijit.findWidgets(“id^=divNodes”)
来实现这一点

这有什么用?

来自文档

registry.findWidgets返回内部所有非嵌套小部件的数组 给定的DOM节点

您可以自己遍历注册表

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); });
});

但是,如果您有嵌套的小部件,那么应该过滤整个小部件集合,您可以从registry.toArray()获得这些小部件,这就是我在上面代码中使用的。你是说应该有所不同吗?哦,对不起,我的错。。。我正在查看“来自文档部分”中的registry.findwidget。。。下次我会读到最后:-)不用担心。我只是想确保没有给我错误的建议。