问题描述
本人最近在做一个读卡报道功能,进入页面时在页面中用<s:iterator>显示了班级所有学生的学号、姓名、报道情况等三个信息项。jsp页面迭代list集合的代码:<s:iterator value="trainCheckinList" status="st"><tr><td height="35" align="center" <s:if test="#st.isEven() == true"> class="list_info" </s:if>> <!-- 学号 --><s:property value="studentno"/> </td><td height="35" align="center" <s:if test="#st.isEven() == true"> class="list_info" </s:if>> <!-- 姓名 --><s:property value="fullname"/> </td><td align="center" <s:if test="#st.isEven() == true"> class="list_info" </s:if>> <!-- 报到情况 --><s:if test="%{checkin==0}"><span style="color:blue">未报到</span></s:if><s:if test="%{checkin==1}">已报到</s:if> </td></tr></s:iterator>页面中有个“读卡报道”按钮,点击这个按钮就可以读取到卡里的信息,然后会调用$.ajax({});函数进入后台系统代码,读卡报道成功后会返回该学生的学号,然后我想在$.ajax({});函数返回学号时将页面中该学生的“报道情况”这个信息项的信息由原来的0改为1【0代表未报道,1代表已报道】,即在$.ajax({});函数的success:function(jion){}函数参数里面修改值。一开始是想在$.ajax({});返回成功时,在success:function(jion){}函数里面使用$.find();读取页面中trainCheckinList的所有信息,然后逐个比较,学号相同的就修改,代码如下:checkinObject = $.find("[name^='trainCheckinList'][name$='studentno']");$.each(checkinObject,function(n,value){ });但在$.each()里面不知道该如何设置checkin的值,特想各位大神求解
解决方案
很容易啊,你直接给td加个id,肯定唯一<td id='td+学号' align="center" <s:if test="#st.isEven() == true"> class="list_info" </s:if>> <!-- 报到情况 --> <s:if test="%{checkin==0}"><span style="color:blue">未报到</span></s:if> <s:if test="%{checkin==1}">已报到</s:if> </td>然后在ajax返回函数里根据学号去定位这个td标签,$("#td+学号").html("已报到")