親を dijit._Container で拡張すると、 を呼び出してウィジェットセットを取得できますparent.getChildren()
。ウィジェットが返される順序はparent.addChild()
、DOM 兄弟フードによるものではなく、親 ( ) に追加された順序です。ただし、パーサーを使用すると、この ofc は同じになります。まあ、どのウィジェットにも getChildren が実装されていますが、_Container クラスの違いは、関数addChild: function(/*dijit._Widget*/ widget, /*int?*/ insertIndex)
とremoveChild: function(/*Widget|int*/ widget)
関数がかなり気の利いたものだということです。子を追加するときにinsertIndexを配置すると、兄弟関係が管理可能になります。
domNodes に関しては、dijit を使用して DOM を「超えて」、代わりにウィジェット レイヤーで作業します。これは JS ラップにすぎません。連鎖可能な関数 '.domNodes()' は Dojo のどこにも存在しません。代わりに、次のように呼び出す必要があります。
parent.getChildren().forEach(function(childWidget) {
var domNode = childWidget.domNode;
...
});
// this would get nowhere as the return child-set is merely a 'stupid' array
parent.getChildren().set("attribute", "value");
dijit/map を使用した、上記の foreach のかわいい小さなラッパーを次に示します。
// retreives an array of the actual domNodes of widgetset
dijit.registry.map(function(widget){return widget.domNode;}).forEach(
// uses hitch to allow passing parameters without wrapping in new function
dojo.hitch(
window, // on random scope
dojo.addClass, // calling function
"imTheChildDomNode"// arguments[0]
)
);