我有以下示例: http://jsfiddle.net/Jm7Kp/
这里的想法是动态创建表,表中的按钮仅在该表中创建行。
<div id="divPrincipal">
</div>
<button id="btnAdd">Add</button>
<script>
var objDivPrincipal = $("#divPrincipal");
var tbl;
$("#btnAdd").click(function () {
createTable();
});
function createTable() {
tbl = $("<table border=1><thead><tr><td>FName</td><td>LName</td></tr></thead><tbody></tbody><tfoot><tr><td><button class='btnAddRow'>AddRow</button></td><td></td></tr></tfoot></table></br>");
objDivPrincipal.append(tbl);
tbl.find(".btnAddRow").click(function () {
$(this).parent().parent().parent().after("<tr><td>John</td><td>Snow</td></tr>");
});
}
</script>
我不喜欢使用parent()。parent()。parent()...我试图使用parent('tbody')和最接近('tbody')但它不起作用。即使是父('table')。find('tbody')也行不通。
韩国社交协会
答案 0 :(得分:2)
答案 1 :(得分:1)
那是因为它不在同一个系列中,你的添加按钮位于tfoot
,所以请尝试:
$(this).closest("tfoot").prev("tbody").append("<tr><td>John</td><td>Snow</td></tr>");
您还希望append
不是after
- 所以上面找到最接近的tfoot
,然后找到上一个tbody
,并附加一个新的tr
< / p>