我正在尝试在刚刚使用.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()不会复制更改的内容?如何使其克隆已更改的内容而不是旧内容?
答案 0 :(得分:2)
在cloneStuff()
函数完成实际的HTML替换之前,您正在调用html()
。
请改为尝试:
$("#cloneThis").html("This is new text that should be cloned.");
cloneStuff();
此外,jQuery html()
方法只接受1个参数(新的HTML内容),请参阅documentation。