jquery - 克隆包含选择的行,并克隆选择的值

标签 jquery jquery-selectors clone field

我有这个 HTML:

<tr>
    <td>
        <input type="hidden" name="MatchId[]" value="">
        <select name="TeamId[]">
            <optgroup label="Women">
                <option value="18">Women 1</option>
                <option value="17">Women 2</option>
            </optgroup>
            <optgroup label="Men">
                <option value="9">Men 1</option>
                <option value="8">Men 2</option>
            </optgroup>
        </select>
    </td>
    <td>
        <select name="Day[]">
            <!-- blah -->
        </select>
    </td>
    <td>
        <input class="addButton" type="button" value="+">
    </td>
    <td>
        <input class="removeButton" type="button" value="-">
    </td>
</tr>

我想在单击 + 按钮时克隆该行,但也设置 <select> 的值与原始行相同。

现在,我有这段代码,它成功克隆了该行,但留下了新的 <select>将第一个值作为选择的字段:

$('.addButton').livequery('click', function()
{
    var $btn = $(this);

    var $clonedRow = $btn.closest('tr').clone();

    $btn.closest('tbody').append( $clonedRow );
});

我怎样才能做到这一点?

编辑:附属问题:单击+按钮后如何将焦点设置在克隆行的第一个字段上?

最佳答案

您可以手动完成:

http://jsfiddle.net/Tp7hg/

$('.addButton').live('click', function()
{
    var $btn = $(this);
    var $row = $btn.closest('tr')

    var $clonedRow = $row.clone();
    $clonedRow.find("select").each(function(i){
        this.selectedIndex = $row.find("select")[i].selectedIndex;
    })

    $btn.closest('tbody').append( $clonedRow );
});

关于jquery - 克隆包含选择的行,并克隆选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450032/

相关文章:

javascript - 在队列中制作 jQuery 动画

javascript - 为 DOMMouseScroll 事件添加延迟

jquery - 您可以在 jQuery 选择器上执行 'AND' 来定位多个按钮吗?

相同类的 jQuery 选择器

javascript - CORS请求结构很难理解,你能帮忙解释一下吗?

javascript - 如何在extjs中获取文件夹路径而不是文件路径

jquery - jQuery 中的 ^= 选择器有什么作用?

java - 为什么数组允许使用克隆方法?

java - 在子类中实现 clone()

ruby - 复制 Ruby 字符串数组