如图所示,后台的一个list集合传递到前台以后,循环生成这样的标签,代码如下,截图太大,直接上代码:
<c:forEach items="${requestScope.list}" var="li">
<div class="col-md-4 box-container">
<div class="box border blue">
<div class="box-title">
<h4><i class="fa fa-bars"></i>${li.requireName}</h4>
<div class="tools">
<a href="#box-config" data-toggle="modal" class="config">
<i class="fa fa-cog"> 修改</i>
</a>
<a href="javascript:;" class="remove">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="box-body">
<div class="scroller" data-height="200px" data-always-visible="1" data-rail-visible="1">
<input type="hidden" value="${li.id}" name="taskID"/>
<p><b> 优先等级 : </b>${li.priority}</p>
<p> <b>预计开始日期 :</b>${li.expectedDate}</p>
<dt> 需求名称 </dt>
<dd>${li.requireName}</dd>
<p></p>
<dt> <b> 内容描述 </b></dt>
<dd>${li.contentDescrib}</dd>
<p></p>
<dt>需求人员</dt>
<dd>${li.requireUser}</dd>
</div>
</div>
</div>
</div>
</c:forEach>
每个标签我都把对应的ID给了,但是在点击修改,获取这个标签的ID的时候就是获取不到,获取方法如下:
var addId=$("input[name=taskID]").val();
不管点击的是哪个标签,打印出来的ID都是第一个标签的ID,但是用fireBUG显示的是正常的,下面上图:
var addId=$("input[name=taskID]:eq(1)").val();这样获取倒是可以获取到对应的标签ID,但是其他的标签ID页变成这样的了,实在搞不确定了,大神们给看看到底是什么情况?谢谢大家啦。
<c:forEach items="${requestScope.list}" var="li" varStatus="status">
......
<i class="fa fa-cog" v="${status.index}"> 修改</i>(此处加了一个下标索引号)
......
<input type="hidden" id="theId${status.index}" value="${li.id}" name="taskID"/> (此处加了唯一性的id)
......
</c:forEach>
按照上面这种写法,每个input的id是唯一的:实际id为:theId0,theId1,theId2.....
$(".fa fa-cog").click(function(){
var index = ${this}.attr("v");
var theId = "#theId"+index;
var trueValue= $(theId ).val();
});
上面这个trueValue就是你想获取的值了吧
恩,刚开始不明白,后来我也想到了,但是还是谢谢你,把分给你咯。谢谢
name本身就是重复的,这样取肯定不行了。在生成标签的时候就直接生成id,然后根据id取。
首先谢谢你的回答,你的意思是把<input type="hidden" name="taskID"/>的name属性给去掉,换成id,id的值就是数据库字段的值吗?