您只需要在每次迭代中克隆元素。dom对象不是普通的js对象
createElement
在raw js中创建一个新的:
$(function () {
// element to be cloned
var _clone_me = $('#toBeCloned');
// target element
var _target = $('#targetElm');
//now target element is to be filled with cloned element with data of span changed
var _someData = [1, 2, 3, 4];
//loop through data
$.each(_someData, function (i, data) {
var _newElm = _clone_me.clone(true); // clone copy
_newElm.find('span').html(data); //edit content of span
_target.append(_newElm); //update target
});
});
代码失败的原因是,尽管您在每次迭代中“扩展”了一个空对象,但它仍然总是引用
相同的
DOM节点。你不断地改变它的值,并把它附加到
#target
. 另外,还有
append
works实际上会移动对象,所以不会得到重复的对象。