visualforce ページの DOM を変更したいと考えています。では、Javascript で pageblock 要素を取得するにはどうすればよいでしょうか?
<apex:page>
<apex:pageblock title="Filter" id="block">
</apex:pageblock>
</apex:page>
ありがとうございました
visualforce ページの DOM を変更したいと考えています。では、Javascript で pageblock 要素を取得するにはどうすればよいでしょうか?
<apex:page>
<apex:pageblock title="Filter" id="block">
</apex:pageblock>
</apex:page>
ありがとうございました
アクセス方法のjqueryの例を次に示します。
$("*[id$=block]");
これにより、jqueryでさらに使用できるjqueryオブジェクトが返されるか、
$("*[id$=block]").get(0);
基になるDOM要素を取得します。
プレーンなJavascriptを使用している場合は、生成されたHTMLを調べて、完全なIDが何であるかを確認する必要があります。DOMを使用して要素を取得します。
document.getElementById("j54:j01:block"); // the Id is made up, but it will be at least as ugly as this
jQueryの$=
操作により、この必要性が軽減されます。pageBlockが存在する場所を変更すると、生成されたIDが変更されるため、直接DOMソリューションの信頼性は低くなります。つまり、pageBlockの祖先を変更すると、IDが変更されます。
JavaScript でコンポーネントを参照するためにサポートされている方法は、 を使用することです。$Component
たとえば、 を使用{!$Component.idName}
して、 によって生成された HTML 要素の DOM ID を取得します<apex:outputPanel id="idName">
。
http://www.salesforce.com/us/developer/docs/pages/Content/pages_access.htm