我正在尝试向表中添加新行。新行与下一行重复,几乎没有变化。新行将删除嵌套表中的所有行,但第一行。我创建了一个JSFiddle链接,您可以在其中找到更多详细信息和代码:
var rowId = $("#menu").attr("rowId");
var currentRow = $("#" + rowId);
var rowToBeAdded = currentRow.next();
rowToBeAdded.clone().insertAfter(currentRow)
.find(".TBLCONTENTS:not(:first),.TBLALTCONTENTS:not(:first)").remove();
出于某种原因,以下情况有效,但上述情况并非如此:
rowToBeAdded.clone().insertAfter(rowToBeAdded).find(".TBLCONTENTS:gt(0),.TBLALTCONTENTS:gt(0)").remove();
答案 0 :(得分:1)
这是你的代码:
var currentRow = $("#moduleRow");
var rowToBeAdded= $("#moduleRow").next().find(".content").not(":first").remove().find(".altcontent").not(":first").remove();
$(currentRow).after(rowToBeAdded);
.clone()
要复制的元素,否则插入/追加它只会移动它。td
(您有<table><tr><table>
,应为<table><tr><td><table>
).find(".content").not(":first").remove().find(".altcontent")
将首先移除除第一个之外的所有.content
,然后尝试在第一个.altcontent
内找到.content
,这可能不是您想要的。您可以使用.end()
返回上一个jquery对象$('#moduleRow').next()
)之后插入var currentRow = $("#moduleRow").next();
var rowToBeAdded = currentRow.clone()
.find(".content:not(:first),.altcontent:not(:first)").remove().end()
.insertAfter(currentRow);
请参阅http://jsfiddle.net/orig/rL5aZ/4/
修改强>
实际上它可以更简单:
var currentRow = $("#moduleRow").next();
currentRow.clone().insertAfter(currentRow)
.find(".content:not(:first),.altcontent:not(:first)").remove();