我可能会错误地说明这一点,但是一旦内容(动态)加载到外部.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>
非常感谢任何帮助...
答案 0 :(得分:0)
您需要为h:selectManyCheckbox
和任何父UINamingContainer
组件(例如h:form
,h: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 /名称的最后部分过滤掉感兴趣的复选框。