JSTL:foreach 循环将值设置为隐藏变量始终返回零

jstl : foreach loop setting values to a hidden variable returns zero always

本文关键字:变量 隐藏 返回 设置 foreach 循环 JSTL      更新时间:2023-09-26

我有一个如下所示的foreach循环

<% if (request.getAttribute("categoriesList") != null) {%>
    <c:forEach var="categoryName" items="${categoriesList}" varStatus="category">
       <input type="hidden" id="categoryIndex" name="categoryIndex" value="${category.index}"/>
       <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
    </c:forEach>
<% }%>

我尝试像下面这样设置项目的索引值

<input type="hidden" id="categoryIndex" name="categoryIndex" value="${category.index}"/>

当我这样做时

var categoryIndex = $('#categoryIndex').val();
console.log("categoryIndex : "+categoryIndex);

on单击列出的项目,它 alsways 打印0

可能有什么问题?

你可以

这样尝试:

 <c:forEach var="categoryName" items="${categoriesList}" varStatus="category">
   <input type="hidden" id="categoryIndex+${category.index}" name="categoryIndex" value="${category.index}"/>
   <li><a onclick="getCategoryIndex(${category.index})" href="#">${categoryName}</a></li>
 </c:forEach>

在你的 JavaScript 方法中:

 function getCategoryIndex(x){
    var categoryIndex = $('#categoryIndex'+x).val();
    console.log("categoryIndex : "+categoryIndex);
 }