关于将数据库取得的值匹配显示的问题其二

前台显示的部分代码为

    </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属性的值不匹配。