通过克隆现有行动态附加行?

时间:2013-08-08 10:53:34

标签: javascript jquery

我在表格中有一行,因为css样式设置为display:none,所以不会显示该行。

HTML表:

<table class="myTable">
    <tr class="prototype">
    ........
    </tr>
</table>

CSS代码:

.myTable .prototype{display:none;}

现在我必须克隆同一行并向其添加一些数据并将该行附加到表中,如下所示:我有以下jquery代码:

var master = $(this).parents("table.myTable");

var prot = master.find(".prototype").clone();
prot.attr("class", "");
prot.find("#attributeValue").attr("value", "ABC");
prot.find("#contactFirstName").attr("value", "XYZ");

jQuery('table.myTable tr:last').before(prot);

但是这行不会被添加到表中。请帮帮我。

谢谢!

2 个答案:

答案 0 :(得分:1)

  1. 如果您在onLoad事件中运行代码,请将第一行更改为var master = $(this).find("table.myTable");var master = $("table.myTable");
  2. 使用prot.removeClass();代替prot.attr("class", "");
  3. ID必须是唯一的,如果原型行中的元素具有id,则会得到无效的HTML。
  4. 使用$().val('ABC')代替$().attr('value', 'ABC')
  5. 如果仍然无效,请显示更多代码(可能是jsfiddle)。

答案 1 :(得分:0)

var master = $(this).parents("table.myTable");

var prot = master.find("tr.prototype").clone();
prot.removeClass('prototype');
prot.find("#attributeValue").val("ABC");
prot.find("#contactFirstName").val("XYZ");

master.append(prot);
prot.show();