0

ui:includeを使用して、さまざまなページに含めるui:compositionxhtmlファイルを作成しています。タグIDの前に親ページのフォームIDが追加されている可能性があるため、getElementByIdを使用してこのファイルのjavascriptからタグを参照する方法はないようです。回避策はありますか?

質問を投稿した後、この回答を見つけました。助かりました!
JSF2.0を使用してネーミングコンテナ内のコンポーネントclientIdの完全なプレフィックスを取得します

4

2 に答える 2

2

あなたはこれを行うことができます:

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()

于 2012-08-21T20:58:54.420 に答える
1

ApacheのTomahawkコンポーネントを使用し、を指定したforceId="true"場合、タグIDは変更されません。例えば:

<t:inputText id="name" forceId="true" value="#{myBean.property}" />

結果は<input type="text" id="name" ... / >

于 2012-08-22T08:48:58.417 に答える