Elementとコンポーネントと属性の取得方法をまとめてみる。
コンポーネントを取得する(1)
var globalId = '74:2.a';
var cmp = $A.getCmp(globalId);
var globalId = cmp.getGlobalId();
つまりは、グローバルIDがわからないとコンポーネントが取得できないし、コンポーネントがわからないとグローバルIDが取得できない仕組みになってます。
なので、コンポーネント自分自身の中か、コンポーネントがコンポーネントをコンポジションしている場合に親のコンポーネントが子のコンポーネントを取得する出来ないです。
(globalIdがふられるタイミングも気になります・・・要検証)
コンポーネントを取得する(2)
hoge.cmp
<div aura:id="hoge">hogehoge</div>
var foo = cmp.get('hoge');
これで、divのコンポーネントが取得できます。
どうも各コンポーネントに記述した各Elementがそれぞれコンポーネントでラッピングされています。
Elementを取得する。
var foo = cmp.get('hoge');
foo.getElement();
これでも結果は同じ
foo.getElements()[0];
属性を取得する。
hoge.cmp
<aura:attribute name="foo" type="String" default="bar"/>
<ui:button aura:id="foobar" label="submit me!" press="{!c.dosomething}" />
コンポーネントの属性を取得できます。
//どっちも同じ結果
cmp.get('v.foo')
cmp.get('v').get('foo')
こうやって、Elementの属性も取得できます。
//どっちも同じ結果
cmp.get('foobar').get('v.label');
cmp.get('foobar').get('v').get('label');