我使用 JSP 腳本在網頁上生成一個表,給定一個列表,解析值并生成表。我的表需要為每個名稱參數具有相同的行數(示例中為 2),如下所示:id name value1 value10 name1 12 131 name1 11 92 name2 14 23 name2 14 44 name3 12 55 name3 1 26 name4 12 17 name4 15 2一旦 jsp 接收到包含其中一個名稱的新列表元素,該表就需要刪除接收到的較舊的名稱并添加新行。如果我們收到新的 name1 列表,則:id name value1 value11 name1 11 98 name1 21 242 name2 14 23 name2 14 44 name3 12 55 name3 1 26 name4 12 17 name4 15 2如果我們收到新的 name3 列表,則:id name value1 value11 name1 11 98 name1 21 242 name2 14 23 name2 14 45 name3 1 29 name3 25 196 name4 12 17 name4 15 2這是我的代碼:<table id="myTable"><thead><tr><th>id</th><th>name</th><th>value1</th><th>value2</th></tr></thead><tbody><td><c:forEach items="${my_params}" var="param"><td>${param.param}</td></c:forEach></td></tbody>由于我按名稱分組,因此我使用以下數據表代碼:var group = $('tr.group');var totalGroups = group.length;var maxRows = totalGroups*2;var groupColumn = 1;$('#myTable thead th').unbind('click');var table = $('#myTable').DataTable({ "columnDefs": [ { "visible": false, "targets": groupColumn } ], "order": [[ groupColumn, 'asc' ]], "displayLength": 40, "drawCallback": function ( settings ) { var api = this.api(); var rows = api.rows( {page:'current'} ).nodes(); var last=null; api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) { if ( last !== group ) { $(rows).eq( i ).before( '<tr class="group"><td colspan="5">'+group+'</td></tr>' ); last = group; } } ); if(table.rows().count() >= maxRows) {table.row(0).remove().draw()}; }} );使用這種方法,我永遠不會刪除舊行,因為一旦我重新加載頁面,它就會被刪除。使用我重新加載頁面后提供的代碼,該行將再次重新繪制。在特定閾值之后繪制新行后,如何立即刪除舊行?
JQuery 從 jsp 生成的數據表中刪除閾值后的舊行
拉丁的傳說
2023-08-05 20:52:15