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

.replaceWith() is not working in jQuery 1.9+

我正在尝试克隆一个 <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/

我不知道你用 .attr('span' 做了什么,为什么它似乎在 < 1.8 中有效,或者你为什么要从 cloneCount 中减去一个,但这应该可以满足你的要求:

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

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

jsFiddle example