【问题标题】:How to select a JSF generated html element using jquery [duplicate]如何使用jquery选择JSF生成的html元素[重复]
【发布时间】:2017-08-11 05:21:12
【问题描述】:

在我的 JSF 应用程序中,其中一个 html 元素具有以下 ID。

FrmOffer:rptOffer:0:j_idt325:0:j_idt355:0:j_idt356:0:j_idt560:0:j_idt632

当我尝试使用下面的 Jquery 行选择元素时,

选项 1: $('#FrmOffer:rptOffer:0:j_idt325:0:j_idt355:0:j_idt356:0:j_idt560:0:j_idt632');

这会返回: 未捕获的错误:语法错误,无法识别的表达式:不支持的伪:rptOffer

选项 2:

$('#FrmOffer\\:rptOffer\\:0\\:j_idt325\\:0\\:j_idt355\\:0\\:j_idt356\\:0\\:j_idt560:0\\:j_idt632');

这会返回: []

谁能建议如何选择元素?

【问题讨论】:

  • 你可以使用像$('[id^=FrmOffer]').length这样的选择器开始

标签: javascript jquery html jsf jsf-2


【解决方案1】:

那样你会受苦。

在 jsf 中,如果所有元素都有 Id,则可以引用连接其父元素名称的元素:

<h:form id="formId">
    <h:inputText id="emailAddresses" value="#{emailAddresses.emailAddressesStr}"/>

var input = document.getElementById('formId:emailAddress');

也许回答的问题可以帮助你How can I know the id of a JSF component so I can use in Javascript

【讨论】:

  • 我已经引用了链接,但是如果我将ID添加到父元素,我必须修改所有子元素的代码。我不想为了一个小小的改变而破坏这样一个复杂的功能。
【解决方案2】:

我们可以使用原生 javascript 选择器来代替 jquery。 下面是我的代码:

document.getElementById('FrmOffer:rptOffer:0:j_idt325:0:j_idt355:0:j_idt356:0:j_idt560:0:j_idt632');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    相关资源
    最近更新 更多