基本上我有一個表,用戶可以添加行。根據(jù)行類型,它們的添加方式略有不同。標準行始終由 .append() 添加,但“指令”行應(yīng)始終添加在創(chuàng)建或修改的最后一行之后。//Lastrow is always a Jquery object of a table row that's present on the DOM.//The variable is set/reset whenever a row is created or modified.lastRow = $(row)... //indexRow = lastRow, but passed as an argument. function addRow(rowType, indexRow){ newRow="<tr><td>Test</td></tr>"; //Want to add the new row after the last created row, and it doesn't work. //However if lastRow is an existing row that's been modified, it does work. if(rowType =='instructionRow'){ indexRow.after($(newRow)); indexRow.get(0).scrollIntoView(); } if(rowType=="normalRow"){ $('tableId').append(newRow); lastRow = $(newRow); }}LastRow 設(shè)置位置的一些示例//In the add row function itself, if the row is not an instruction row.//Where newRow = HTML for a table row//This does not work when you try addRow("instructionRow", lastAddedRow) after it if(rowType=="normalRow"){ lastRow = $(newRow); }//In a row that is updated.//Where row is a row in the dom, in a .each() loop//In this case, the addRow("instructionRow", lastRow) will work.$('tableId tr').each(function (index, row){ if(row.childNodes[1].innerText == 'whatever'){ lastRow = $(row); row.childNodes[1].innerText = "New Value";}因此,我可以認為新創(chuàng)建的行在添加到 lastRow 時不是活動的 dom 元素,但不確定為什么或如何解決它。編輯:小提琴: https://codepen.io/josh-dredge/pen/ZEppyXm? editors=1111復制。按“添加普通行”。兩三次。按“添加指令行”。什么都不會發(fā)生(這是注定的)按“更新普通行”。第一個正常行將更新。4 按“添加指令行”?,F(xiàn)在將在更新的普通行之后添加指令行
在指定的 <tr> 之后添加行
楊魅力
2023-11-02 17:09:41