前台显示的部分代码为
</tr>
<%
List<DetectResult> list2 = (List<DetectResult>)request.getAttribute("list2");
if(list2 == null || list.size() < 0){
out.print("没有数据!");
}else{
for(DetectResult dr : list2){
%>
<tr>
<td value=<%=dr.getGroup()%>><%=dr.getShipName()%></td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<%
}
}
%>
</table>
</div>
<script type="text/javascript">
var kvState = {1:'不合格',2:'合格'};
var kvTD = {8:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,9:9,10:10,11:11,12:12};
var tds = document.querySelectorAll('td[value]');
for (var i=0;i<tds.length;i++){
var tr = tds[i].parentNode;
var arr = tds[i].getAttribute('value').split(',');
for (var k = 0;k<arr.length;k += 2){
tr.cells[kvTD[arr[k]]].innerHTML = kvState[arr[k + 1]];
}
}
</script>
第一个页面用来显示所有船只信息,没有问题可以正常显示如下:
第二个页面用于显示从前一个页面查询得到某一条船的信息,前台代码没变,但是却显示不出合格情况:
经测试,第二个页面的船只的合格信息能从数据库查询得到,感觉是
“<td value=<%=dr.getGroup()%>><%=dr.getShipName()%></td>”
中的“value”没有起到作用,同样的代码,为什么会存在显示的差异?是因为查询信息的数量不同吗?不知道前台的代码应该修改哪里。
F12看浏览器控制台报错了没有,看客户端生成的html代码中value属性有什么值
单独一条和 全部显示的的tr结构一样应该不会出问题,只能是你的值有问题对不上
去了第二个页面,你的dr估计就没值了吧?第二个页面的完整代码贴出来看看
<td value>
value属性的值不匹配。