2

我想克隆一个 HTML 表格行并使用 jQuery 在表格末尾动态添加一个新行。此行有许多下拉控件。我正在尝试克隆该行。大多数控件都会被复制,但选项的值不会被复制。所以我试图明确设置选项值。那也没有用。

//original table row and its clone
var $tr = $("tr.RowToBeCopied").last();
var $clone = $tr.clone();

var originalSelects = $tr.find("select");
    $(originalSelects).each(function (i) {
        var select = this;
        var originalOptions = $(select).find("option");

        $(originalOptions).each(function (j) {
            var originalOption = this;
            $($clone.find("select").eq(i))
                .find("option").eq(j)
                    .val($(originalOption).val());
        });
    });

$tr.after($clone);

我尝试通过以下代码将其设置为属性->

var originalSelects = $tr.find("select");
    $(originalSelects).each(function (i) {
        var select = this;
        var originalOptions = $(select).find("option");

        $(originalOptions).each(function (j) {
            var originalOption = this;
            $($clone.find("select").eq(i))
                .find("option").eq(j)
                    .attr("title", $(originalOption).val());
        });
    });

在这里,“title”属性设置正确。但是,如果我将“标题”更改为“值”,则不会设置值。

有人可以建议一种方法来让它工作吗?

4

1 回答 1

2

你只需要这样:

var $tr = $("tr.RowToBeCopied").last();
$tr.clone().insertAfter($tr);

clone执行所有元素和文本节点的深层复制,您不必重置值。这是一个例子。http://jsfiddle.net/8bhfR/

于 2013-01-03T06:38:05.670 回答