Javascript 如何从jstl foreach到jQuery访问变量值

Javascript 如何从jstl foreach到jQuery访问变量值,javascript,jquery,servlets,jstl,Javascript,Jquery,Servlets,Jstl,大家好,这可能是一个简单的问题,但我发现它相当棘手。 场景是我正在使用jstl foreach打印数据库表中的所有值 <c:forEach items="${pal}" var="p"> <tr> <td><c:out value="${p.pid}"></c:out></td> <td><c:out value="${p.pname}"></c:out&

大家好,这可能是一个简单的问题,但我发现它相当棘手。 场景是我正在使用jstl foreach打印数据库表中的所有值

<c:forEach items="${pal}" var="p">
    <tr>
        <td><c:out value="${p.pid}"></c:out></td>
        <td><c:out value="${p.pname}"></c:out></td>
        <td><c:out value="${p.pdesc}"></c:out></td>
        <td><c:out value="${p.pestd}"></c:out></td>
        <td><a id="popa" href="#">Allocate</a></td>
    </tr>
</c:forEach>

现在单击Allocate按钮,我想要jquery中的特定pid(即假设有1,2,3,…,10个pid,所以当我单击第四个时,我应该得到第四个pid作为一个值)

但在jQuery中,当我尝试获取该值时,无论单击哪个按钮,我都会得到循环中的最后一个值

jQuery部分

 $("a#popa").click(function(){

     var input = $("<c:out value='${pid}' />");
     alert(input);

 });
$(“a#popa”)。单击(函数(){
变量输入=$(“”);
警报(输入);
});
我也试过这个

 <c:forEach var='lang' items='${paramValues.pid}'>
     <label><font color='#00CC00'><c:out value='${lang}'/></font></label>
 </c:forEach>

 but nothing works

但什么都不管用

请帮助我并指导我如何在jQuery中单击获取pid的当前值。

每个
id
属性的值在整个DOM中应该是唯一的。您正在循环中使用
id=“popa”
,这意味着将有多个循环。当您尝试用jQuery选择
id
时,它会给出最后一个

我会考虑使用下面的方法。不要使用
id
,而是使用
data-*
属性

<c:forEach items="${pal}" var="p">
    <tr>
    <td><c:out value="${p.pid}"></c:out></td>
    <td><c:out value="${p.pname}"></c:out></td>
    <td><c:out value="${p.pdesc}"></c:out></td>
    <td><c:out value="${p.pestd}"></c:out></td>
    <td><a data-pid="${p.pid}" href="#">Allocate</a></td>
    </tr>
</c:forEach>

每个
id
属性的值在整个DOM中应该是唯一的。您正在循环中使用
id=“popa”
,这意味着将有多个循环。当您尝试用jQuery选择
id
时,它会给出最后一个

我会考虑使用下面的方法。不要使用
id
,而是使用
data-*
属性

<c:forEach items="${pal}" var="p">
    <tr>
    <td><c:out value="${p.pid}"></c:out></td>
    <td><c:out value="${p.pname}"></c:out></td>
    <td><c:out value="${p.pdesc}"></c:out></td>
    <td><c:out value="${p.pestd}"></c:out></td>
    <td><a data-pid="${p.pid}" href="#">Allocate</a></td>
    </tr>
</c:forEach>

每个
id
属性的值在整个DOM中应该是唯一的。您正在循环中使用
id=“popa”
,这意味着将有多个循环。当您尝试用jQuery选择
id
时,它会给出最后一个

我会考虑使用下面的方法。不要使用
id
,而是使用
data-*
属性

<c:forEach items="${pal}" var="p">
    <tr>
    <td><c:out value="${p.pid}"></c:out></td>
    <td><c:out value="${p.pname}"></c:out></td>
    <td><c:out value="${p.pdesc}"></c:out></td>
    <td><c:out value="${p.pestd}"></c:out></td>
    <td><a data-pid="${p.pid}" href="#">Allocate</a></td>
    </tr>
</c:forEach>

每个
id
属性的值在整个DOM中应该是唯一的。您正在循环中使用
id=“popa”
,这意味着将有多个循环。当您尝试用jQuery选择
id
时,它会给出最后一个

我会考虑使用下面的方法。不要使用
id
,而是使用
data-*
属性

<c:forEach items="${pal}" var="p">
    <tr>
    <td><c:out value="${p.pid}"></c:out></td>
    <td><c:out value="${p.pname}"></c:out></td>
    <td><c:out value="${p.pdesc}"></c:out></td>
    <td><c:out value="${p.pestd}"></c:out></td>
    <td><a data-pid="${p.pid}" href="#">Allocate</a></td>
    </tr>
</c:forEach>

我可以再问一个如何提醒pid和pname的问题吗,因为当我输入data name=“${p.name}”时,我收到警告消息,在这一行找到多个注释:-元素的结束标记-未定义的属性名称(数据pid)。-元素的开始标记,并将PNA的输出作为未定义,因为它正在工作。您应该通过单击√ 在投票控件下方(我的答案左边)。我可以再问一个问题如何提醒pid和pname,因为当我输入data name=“${p.name}”时,我收到警告消息,在这一行找到多个注释:-元素的结束标记-未定义的属性名称(数据pid)。-元素的开始标记,并将PNA的输出作为未定义,因为它正在工作。您应该通过单击√ 在投票控件下方(我的答案左边)。我可以再问一个问题如何提醒pid和pname,因为当我输入data name=“${p.name}”时,我收到警告消息,在这一行找到多个注释:-元素的结束标记-未定义的属性名称(数据pid)。-元素的开始标记,并将PNA的输出作为未定义,因为它正在工作。您应该通过单击√ 在投票控件下方(我的答案左边)。我可以再问一个问题如何提醒pid和pname,因为当我输入data name=“${p.name}”时,我收到警告消息,在这一行找到多个注释:-元素的结束标记-未定义的属性名称(数据pid)。-元素的开始标记,并将PNA的输出作为未定义,因为它正在工作。您应该通过单击√ 下面的投票控制(在我的答案左边)。