ui:includeを使用して、さまざまなページに含めるui:compositionxhtmlファイルを作成しています。タグIDの前に親ページのフォームIDが追加されている可能性があるため、getElementByIdを使用してこのファイルのjavascriptからタグを参照する方法はないようです。回避策はありますか?
質問を投稿した後、この回答を見つけました。助かりました!
JSF2.0を使用してネーミングコンテナ内のコンポーネントclientIdの完全なプレフィックスを取得します
ui:includeを使用して、さまざまなページに含めるui:compositionxhtmlファイルを作成しています。タグIDの前に親ページのフォームIDが追加されている可能性があるため、getElementByIdを使用してこのファイルのjavascriptからタグを参照する方法はないようです。回避策はありますか?
質問を投稿した後、この回答を見つけました。助かりました!
JSF2.0を使用してネーミングコンテナ内のコンポーネントclientIdの完全なプレフィックスを取得します
あなたはこれを行うことができます:
var elem = document.querySelector( '[id$="-test"]' );
ここtest
で、はプレフィックスなしのIDであり、-
はプレフィックス区切り文字です。
上記のコードは、「id」属性が"-test"
(eg <div id="form1-test">...</div>
)で終わる要素を選択します。
ライブデモ: http: //jsfiddle.net/8kyb2/
querySelector()
attribute-ends-withセレクターと組み合わせると、パフォーマンスが。より遅くなることに注意してくださいgetElementById()
。
ApacheのTomahawkコンポーネントを使用し、を指定したforceId="true"
場合、タグIDは変更されません。例えば:
<t:inputText id="name" forceId="true" value="#{myBean.property}" />
結果は<input type="text" id="name" ... / >
。