我有一个HTML表格,并希望允许用户单击按钮添加新行,但新行不会添加到表的末尾,而是添加到最后一行输入字段之后。< / p>
我在:
设置了一个示例JSFiddle我有一个New Row按钮,但它没有克隆最后一行输入(即New Row按钮所在的行)。我需要修改它,以便在最后一个输入行之后插入一个新行。
这是我在在线教程中找到的脚本:
$(document).ready(function($)
{
// trigger event when button is clicked
$("#button2").click(function()
{
// add new row to table using addTableRow function
addTableRow($("#nextYear"));
// prevent button redirecting to new page
return false;
});
// function to add a new row to a table by cloning the last row and
// incrementing the name and id values by 1 to make them unique
function addTableRow(table)
{
// clone the last row in the table
var $tr = $(table).find("tbody tr:last").clone();
// get the name attribute for the input and select fields
$tr.find("input,select").attr("name", function()
{
// break the field name and it's number into two parts
var parts = this.id.match(/(\D+)(\d+)$/);
// create a unique name for the new field by incrementing
// the number for the previous field by 1
return parts[1] + ++parts[2];
// repeat for id attributes
}).attr("id", function()
{
var parts = this.id.match(/(\D+)(\d+)$/);
return parts[1] + ++parts[2];
});
// append the new row to the table
$(table).find("tbody tr:last").after($tr);
};
});
创建的新行可以将所有输入字段设置为空,因为用户将再次启动。还有一种方法可以让New Row按钮只显示一次,并且始终位于活动输入的最后一行。例如,最初只有一行,但是如果单击New Row按钮,将在初始行下面创建第二行,New Row按钮现在只会出现在这个新创建的行上。
感谢任何帮助 - 我是Javascript的新手。
答案 0 :(得分:2)
这是一个解决方案
基本上你只需将引用传递给单击的按钮,然后从那里计算出你在表格中的位置 - 保存对当前最后一行的引用(使用nearest(),克隆它(使用事件),删除新行原始按钮(您可能需要用删除按钮替换它),然后在原始文件后插入克隆。
现在你可能不需要对传递给你的点击处理程序的表对象的引用(我把它留在了代码中)。