【问题标题】:jQuery cluetip: Manipulate content after renderingjQuery 提示:渲染后操作内容
【发布时间】:2010-01-07 19:29:24
【问题描述】:

我的表述可能不正确,但是一旦内容(动态)加载到外部 .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>  

非常感谢任何帮助...

【问题讨论】:

    标签: javascript jquery jsf cluetip


    【解决方案1】:

    您需要为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/名称的最后部分过滤掉感兴趣的复选框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多