jQuery cluetip:渲染后处理内容

时间:2010-01-07 19:29:24

标签: javascript jquery jsf cluetip

我可能会错误地说明这一点,但是一旦内容(动态)加载到外部.jsp后,是否有任何方法可以操纵(使用JavaScript)内容中的内容?

我有一个显示的项目列表,我想大胆一些。在渲染之前,我无法单独向列表中的任何项添加ID或类。它基本上是一个数据转储

仅供参考,我们使用JSF来提取.jsp上的项目,这些项目以HTML格式呈现为表格:

<h:panelGrid columns="1">
    <h:column>
        <h:selectManyCheckbox layout="pageDirection" value="#{advancedtoolscontroller.roleItems}">
            <f:selectItems value="#{advancedtoolscontroller.roleList}" />
        </h:selectManyCheckbox>
    </h:column>
</h:panelGrid>  

非常感谢任何帮助...

1 个答案:

答案 0 :(得分:0)

您需要为h:selectManyCheckbox和任何父UINamingContainer组件(例如h:formh:dataTable等)分配唯一 ID。这样JSF将相应地生成客户端ID,否则它将自动生成不能在JS中使用的不可预测的客户端ID。要了解它们是如何生成的,只需右键单击webbrowser中的页面,然后选择查看源

然而,有一个小警告,JSF使用冒号:作为UINamingContainer分隔符,例如formid:checkboxid。冒号是CSS中的非法字符。无论如何要在CSS / jQuery中选择它们,您需要使用反斜杠来转义它们。例如。 formid\:checkboxid

此外,h:dataTable将在数据表ID之后将另外一个标识符附加到客户机ID,即行索引,例如, formid:datatableid:0:checkboxid。但是,当您在生成的HTML输出中看到模式时,这应该看起来足够明显。

h:selectManyCheckbox轮流为每个复选框分配一个唯一的客户端ID和相同的客户端名称。再次,只需检查生成的HTML输出以查看模式。

在jQuery中,您还可以使用jQuery.filter()根据客户ID /名称的最后部分过滤掉感兴趣的复选框。