.replaceWith()在jQuery 1.9+中不起作用

时间:2015-10-13 15:22:28

标签: javascript jquery clone replacewith jquery-2.0

我正在尝试克隆<textarea>并克隆并替换每次按下添加按钮时标签<label> Number 1 <label>中的数字增加1(因此第一个标签将具有数字1, 2号以下的标签等)。

这适用于jQuery 1.8及更低版本,但上面的任何内容都不会克隆并向数字添加1。

HTML

<div>
 <label for="number">Number <span class="one">1</span></label>
 <textarea id="number"></textarea>
</div>
<button>Add</button>

的jQuery

var $row = $('div').clone(),
    cloneCount = 2;

$('button').click(function () {
    $row.clone().insertBefore($("button"));
    $('span').clone().attr('span', cloneCount++).replaceWith($('[class=one]:last')).text(cloneCount - 1);
});

JSFIDDLE:http://jsfiddle.net/wba6jvkj/

1 个答案:

答案 0 :(得分:2)

我不知道你在.attr('span'尝试了什么以及为什么它似乎适用于&lt; 1.8,或者为什么要从cloneCount减去一个,但这应该做你想要的:

var $row = $('div').clone(),
    cloneCount = 2;

$('button').click(function () {
    $row.clone().insertBefore($("button"));
    $('span.one:last').text(cloneCount++);
});

<强> jsFiddle example