我想知道如何分发使用“<c:foreach =”“>”标签创建的多个表的索引值

时间:2017-08-08 07:49:55

标签: javascript jquery jstl

从表中选择列并输出其内容没有问题。然而,当从两个或更多个表输出内容时,存在检查位置的值的索引重叠的问题。在下面的示例中,如果选中RESI_COST(上表中的第六列),则会自动选择FP_CAREER,它是下表的第六个索引。如果检查OCCP_GRP_1(下表中的第八个索引),则还会检查第八个索引FP_CAREER。

enter image description here

enter image description here

下面的代码创建了多个表格。

<body>

    <c:forEach var="j" begin="0" end="${rData.size()-1}">



    <table id="sum_table" border="1">
         <thead>
            <tr>
                <c:forEach var="colName" items="${rData.get(j).colNames}">
                    <c:forEach var="colNameValue" items="${colName}">
                        <th><input class="chkCol" name="chkColnames" type="checkbox">
                            <label class="chkCol" for="chkColnames">${colName}</label></th>
                    </c:forEach>
                </c:forEach>
            </tr>
         </thead>
         <tbody>
            <c:forEach var="i" begin="0"
                end="${fn:length(rData.get(j).data[0])-1}">
                <c:if test="${i le 1000}">
                    <c:set var="row" value="${rData.get(j).data}" />
                    <tr>
                        <c:forEach var="data" items="${row}">
                            <td>${data[i]}</td>
                        </c:forEach>
                    </tr>
                </c:if>
            </c:forEach>
         </tbody>
        </table>
    </div>      
  </c:forEach>
</body>

以下代码检索索引值并输出已检查列的信息。

    $(document).on('click', '#confirm', function() {
           var index = [];

           $('#col_table').html('');

           $('#sum_table thead tr input[type=checkbox]:checked').each(function() {
             index.push($(this).closest('th').index());
           });

           var thead = $('<thead>');
           $('#sum_table thead tr th').each(function() {
             if (jQuery.inArray($(this).index(), index) != -1) {
               thead.append($('<th>' + $(this).text() + '</th>'));
               //console.log($(this).text());
             }
           });


           var tbody = $('<tbody>');
           $('#sum_table tbody tr').each(function() {
             var tr = $('<tr>');
             $(this).find('td').each(function() {
               if (jQuery.inArray($(this).index(), index) != -1) {
                 tr.append($('<td>' + $(this).text() + '</td>'));
                 //console.log($(this).text());
               }
             });
             tbody.append(tr);
           });
           $('#col_table').append(thead);
           $('#col_table').append(tbody);
         });

如果你解决了重叠索引值的问题,我真的很感激。

0 个答案:

没有答案