获取元素内的所有小部件
Posted
技术标签:
【中文标题】获取元素内的所有小部件【英文标题】:get all widgets inside an element 【发布时间】:2010-05-31 08:42:50 【问题描述】:从dijit.registry
上的dojo documents,我看到forEach
方法接受最后一个参数thisObject
。但这并不代表那个对象是什么。它是 dijit 小部件还是 dojo 对象?
我想销毁一个元素内的所有小部件(将被 AJAX 替换),以便可以再次解析它们而不会发生 id 冲突。
dijit.registry.forEach(function(w)
w.destroyRecursive();
, dojo.byId("ajaxElement"));
但这会破坏页面上的所有小部件...
【问题讨论】:
检查这个***问题,那里已经回答了:***.com/questions/2763983/… 【参考方案1】:thisObject
是作用域对象,用于调用作为forEach
的第一个参数传入的函数。
您可以在这种情况下使用几个解决方案:
1) 使用dijit.findWidgets
查找一个DOM节点中的所有dijit,并一一销毁。
dijit.findWidgets 返回以 domnode 作为参数的小部件数组
2) dojo.parser.parse
返回它创建的所有 dijit 的数组,存储该数组并在再次调用 dijit.parser.parse
之前销毁 dijit。
3) 使用dijit.registry.filter
过滤掉要保留的dijit。
【讨论】:
以上是关于获取元素内的所有小部件的主要内容,如果未能解决你的问题,请参考以下文章
Kendo UI,使用 MVVM 时如何从 DOM 元素获取小部件对象?