Javascript 在指定的行后面添加行<;tr>;
基本上我有一个表,用户可以添加行。根据行类型,它们的添加方式略有不同。标准行始终由.append()添加,但“指令”行应始终添加在创建或修改的最后一行之后Javascript 在指定的行后面添加行<;tr>;,javascript,jquery,Javascript,Jquery,基本上我有一个表,用户可以添加行。根据行类型,它们的添加方式略有不同。标准行始终由.append()添加,但“指令”行应始终添加在创建或修改的最后一行之后 //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) ... //in
//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时,我可以看出它们不是活动的dom元素,但不确定为什么或者如何绕过它
编辑:小提琴:
复制
由于变量
newRow
是一个字符串,当您执行以下操作时:
$('#tableId').append(newRow);
lastRow = $(newRow);
它不是同一个“newRow”-第二行通过重新解析字符串来创建一个新元素(没有附加到DOM中)
相反,您可以:
lastRow = $(newRow);
$('#tableId').append(lastRow);
或
这两个选项都会将
lastRow
设置为已追加的行,并且位于DOM中请单击[]
并生成一个添加了复制说明的行。谢谢。虽然这两种方法对我都不管用,但我还是在玩弄它。我在主帖上加了一把小提琴。编辑:是否让它与appendTo()一起工作。由于某种原因,缓存没有重新加载。
lastRow = $(newRow);
$('#tableId').append(lastRow);
lastRow = $(newRow).appendTo('#tableId')