javascript - 如何将 id 设置为 id h :commandLink from a c:forEach in order to be accesed by JS?

标签 javascript jsf foreach commandlink trinidad

在一个带有 Apache Trinidad 的 JSF 1.1 项目中,我需要创建几个动态的 h:commandLink,并且它们需要被 JS 访问以便点击加载。

我有的是 js 的:

    var cardsSize = window.document.getElementById("miForm:cardsSize").value;
    for(var i = 0; i <= cardsSize; i++){    
        setTimeout(function(){
            var buttonCard = window.document.getElementById("miForm:buttonCard_"+i);
            buttonCard.click();
        }, 1000);
    }

我在 .jsp 中的内容是:

<c:forEach var = "i" begin="0" varStatus="index" end="#{pageFlowScope.cardsSize}">
    <h:commandLink id="buttonCard_#{index.index}"
        style="display:none" 
        action="#{confirmBacking.generateDocument}"
        onclick="document.forms['miForm'].target='_blank';">
            <f:setPropertyActionListener target="#{confirmBacking.indexCard}" value="#{index}" />
    </h:commandLink>
</c:forEach>

问题是,当我使用 c:forEach 创建 commandLink 时,使用动态 ID 以根据 TLD 或标记文件中的属性指令,属性“[id]”不接受任何表达式

用 c:forEach 或 ui:repeat 创建多个具有不同参数的 commandLink 的其他解决方案意味着没有和 id,但我需要 id,因为据我所知,JS 没有其他方法来访问这些对象。

最佳答案

您可以改用 css 类选择器:

<h:commandLink styleClass="buttonCard_#{index.index}"

并通过以下方式获取每个按钮:

document.getElementsByClassName("buttonCard_"+i)

关于javascript - 如何将 id 设置为 id h :commandLink from a c:forEach in order to be accesed by JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430734/

相关文章:

使用 _.extend 进行继承的 Javascript 设计方法

java - 带有弹出窗口的jsf,具有相同viewid的问题

ios - 如何在SwiftUI中在 View 上使用Foreach?

javascript - 将网页重置为初始状态

javascript - jQuery Dialog 按钮改变颜色内联

javascript - JSF Primefaces 单选按钮显示/隐藏/启用文本区域

css - 如何向 PrimeFaces 添加 css?

用于存储和仅显示最后 5 个 View 产品的 php session

r - R:foreach循环如何找到应调用的函数?

javascript - div在创建jquery对象中的作用