jQuery Cloning Altered Content

时间:2014-12-24 17:45:06

标签: javascript jquery html dynamic clone

我正在尝试在刚刚使用.html()更改的内容上运行jQuery .clone()。但是,.clone正在复制内容之前复制内容。我想克隆更改的内容。我该怎么做?

这是我的HTML:

<div id="cloneThis">This text exists before .html() replaces it.</div>
<div id="cloneHere"></div>

这是我的JS:

// This function copies #cloneThis content over to #cloneHere
function cloneStuff(){
  $('#cloneThis').clone().appendTo('#cloneHere');
}

function changeThenClone(){
  $("#cloneThis").html("This is new text that should be cloned.", cloneStuff());
}
// When this is run, cloneStuff() clones the old content, not the new content. 
changeThenClone();

如果您希望在行动中看到它,请参阅相同的代码示例:http://codepen.io/anon/pen/JoRWMQ

为什么.clone()不会复制更改的内容?如何使其克隆已更改的内容而不是旧内容?

1 个答案:

答案 0 :(得分:2)

cloneStuff()函数完成实际的HTML替换之前,您正在调用html()

请改为尝试:

$("#cloneThis").html("This is new text that should be cloned.");
cloneStuff();

此外,jQuery html()方法只接受1个参数(新的HTML内容),请参阅documentation