java - 如何获取嵌套 JSTL c :forEach from JSP to JS 的索引

标签 java javascript jsp spring-mvc jstl

我有一个 JSP,我在其中通过 JSTL c:forEach 循环显示元素。这是一个嵌套循环,如下所示:

<c:forEach items="${auditBudgetData.auditBudgetTierOneList}" var="auditBudgetTierOne" varStatus="tierOneCount">
        ** Some Code **     
    <c:forEach items="${auditBudgetTierOne.auditBudgetTierTwoList}" var="auditBudgetTierTwo" varStatus="tierTwoCount">
            ** Some Code ** 
                    <c:forEach items="${auditBudgetTierTwo.auditBudgetItemList}" var="auditBudgetItem" varStatus="budgetItemCount">
                        <input type="hidden" name="tierOneIndex" value="${tierOneCount.count}">
                        <input type="hidden" name="tierTwoIndex" value="${tierTwoCount.count}">
                        <input type="hidden" name="budgetItemIndex" value="${budgetItemCount.count}">

                            **Element rows displayed here**

现在,当用户选择最内层循环中的任何元素行时,我必须在 JS 中获取值。正如您所看到的,我正在尝试获取每个嵌套循环的计数,如下所示:

<input type="hidden" name="tierOneIndex" value="${tierOneCount.count}">
<input type="hidden" name="tierTwoIndex" value="${tierTwoCount.count}">
<input type="hidden" name="budgetItemIndex" value="${budgetItemCount.count}">

并尝试在 JS 中获取输入字段的值,如下所示:

var tierOneIndex = $('input[name="tierOneIndex"]').val();
var tierTwoIndex = $('input[name="tierTwoIndex"]').val();
var budgetItemIndex = $('input[name="budgetItemIndex"]').val();

但无论我选择什么元素,我总是会得到:

tierOneIndex = 0
tierTwoIndex = 0
budgetItemIndex = 0

有什么想法可以获取计数值。

最佳答案

在你的html中你可以这样做

<table>

    <c:forEach items="${auditBudgetData.auditBudgetTierOneList}" var="auditBudgetTierOne" varStatus="tierOneCount">
            ** Some Code **     
        <c:forEach items="${auditBudgetTierOne.auditBudgetTierTwoList}" var="auditBudgetTierTwo" varStatus="tierTwoCount">
                ** Some Code ** 
                        <c:forEach items="${auditBudgetTierTwo.auditBudgetItemList}" var="auditBudgetItem" varStatus="budgetItemCount">


                            <input type="hidden" name="tierOneIndex"    id="tierOneIndex_${budgetItemCount.index}"        value="${tierOneCount.count}">
                            <input type="hidden" name="tierTwoIndex"    id="tierTwoIndex_${budgetItemCount.index}"        value="${tierTwoCount.count}">
                            <input type="hidden" name="budgetItemIndex" id ="budgetItemIndex_${budgetItemCount.index}"    value="${budgetItemCount.count}">

                            <tr class="rows" id="${budgetItemCount.index}"><td>click Here</td></tr>


    </table>

在 javascript 中你可以这样做

$(document).ready(function(){

$("tr.rows").click(function() {
    var rowid=this.id; 

var tierOneIndex = $('#tierOneIndex_'+rowid).val();
var tierTwoIndex = $('#tierTwoIndex_'+rowid).val();                         
var budgetItemIndex = $('#budgetItemIndex_'+rowid).val(); 

    console.log("tierOneIndex:"+tierOneIndex);
    console.log("tierTwoIndex:"+tierTwoIndex);
    console.log("budgetItemIndex:"+budgetItemIndex);
});

    }); 

注意:

${tierOneCount.index} 从 0 开始计数

${tierOneCount.count} 从 1 开始计数

我也为你创建了一个样本 fiddle http://jsfiddle.net/9CHEb/33/

关于java - 如何获取嵌套 JSTL c :forEach from JSP to JS 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22381575/

相关文章:

java - 一段时间不活动后,我得到 'No more data to read from socket'。 Weblogic 和 Oracle 数据库

java - JSP 页面模板

java - Android:如何从另一个 GridView 的 set-on-item-click 监听器函数中通过其位置获取 GridView 项目标签?

java - 如何在android中访问事件函数之外的变量

javascript - 如何存储和重现 jQuery 事件

javascript - 尝试通过 jQuery/replace() 删除括号内的 anchor 文本

java - SpringMvc 磁贴不显示页眉和页脚

java - 测试所有可能的行组合

java - 如何在 iTEXT 中 reshape 表格

javascript - 如何从日期选择器 Angular Material 中读取日期