dojo.queryを使用して、CSSセレクターに基づいて特定の要素を取得できますが、オブジェクトタイプをクエリするにはどうすればよいですか?
たとえば、ページ上のすべてのTextBox要素を取得してから、dojo.connectを使用して関数をバインドしますか?
質問する
1732 次
1 に答える
3
これは完全にはサポートされていませんが、私が見ているようにそれを行うには2つの方法があります。
1つは、TextBox(.dijitTextBox
)の一意のクラスを特定し、呼び出しdojo.query('.dijitTextBox')
て結果をループdojo.forEach
し、次のウィジェットを取得します。dijit.getEnclosingWidget(domnode)
var textboxArray = [];
dojo.forEach(dojo.query('.dijitTextBox'), function(domnode) {
textboxArray.push(dijit.getEnclosingWidget(domnode));
});
または2つ、-connectの場合はdijit.registry._hash
、テストをループします。declaredClass
dijit.form.TextBox
var textboxArray = dojo.filter(dijit.registry._hash, function(widget) {
return widget.declaredClass && widget.declaredClass == 'dijit.form.TextBox';
})
設定に応じて、最も効率的なものを選択してください。ページに数百のウィジェットがない限り、後者が一般的に最適です。1つ目は、ページのすべての要素をxpathする必要があります。ただし、dojo.queryは2番目のパラメーターを「parentNode」として受け取ることに注意してください。
于 2012-08-19T13:22:30.177 に答える