web-dev-qa-db-ja.com

ExtJs-divクラスで要素を取得しますか?

クラス名でDivのExtJsコンポーネントオブジェクトを取得するにはどうすればよいですか?

私のdivは次のとおりです。

_<div class="abc"></div>
_

このDivのExtJsオブジェクトを実行するにはどうすればよいですか? getWidth()

注:idは指定されていません。

私が試したこと:

_Ext.select(".abc")
Ext.query(".abc")
_

編集:

エラー:_Object has no method 'getWidth'_

_<div id="main">
<div class="abc"></div>
</div>
_
_  var d = Ext.get( "main" );
  d.query('.abc').getWidth();
_
8
Shlomo

使用する

var dom = Ext.dom.Query.select('.abc');
var el = Ext.get(dom[0]); 

これにより、Ext.Elementが返されます。その後、elでextメソッドを使用できます。

el.on('click', function(){}, scope);

または

el.getWidth()
18
Varun Achar

私はあなたが意味すると信じています Ext.dom.Element (ExtJsコンポーネントオブジェクトではありません)。はいの場合は、このコードを試してください

var d = Ext.get( "main" );
alert(d.down('.abc').getWidth());​

デモ

7
Molecular Man

Ext4以降の場合、以下を使用できます。

Ext.ComponentQuery.query('panel[cls=myCls]');

そして、あなたはこのコンポーネントの配列を取得します

ソース: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.ComponentQuery

6
ssamuel68
Ext.select('abc');

この方法は、EXT4でも機能します。

あなたの例では、クラス名の文字列を呼び出すときにドットを削除するだけです。

4
Frank