我想更改 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>
谢谢
在 JavaScript 中引用组件的支持方式是使用$Component
,例如使用{!$Component.idName}
来获取由 生成的 HTML 元素的 DOM ID <apex:outputPanel id="idName">
。
http://www.salesforce.com/us/developer/docs/pages/Content/pages_access.htm
这是一个关于如何访问它的 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 的$=
操作减轻了对此的需求。直接 DOM 解决方案不那么可靠,因为如果您更改 pageBlock 所在的位置,生成的 ID 会发生变化。换句话说,pageBlock 祖先的任何变化都会导致 Id 发生变化。