0

我想更改 visualforce 页面的 DOM。那么如何使用 Javascript 获取 pageblock 元素呢?

<apex:page>

<apex:pageblock title="Filter" id="block">

</apex:pageblock>

</apex:page>

谢谢

4

2 回答 2

1

在 JavaScript 中引用组件的支持方式是使用$Component,例如使用{!$Component.idName}来获取由 生成的 HTML 元素的 DOM ID <apex:outputPanel id="idName">

http://www.salesforce.com/us/developer/docs/pages/Content/pages_access.htm

于 2013-03-05T14:34:22.733 回答
1

这是一个关于如何访问它的 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 发生变化。

于 2013-03-01T18:55:03.303 回答