2014-12-31 66 views
0

我克隆一个元素并存储到对象中。同时创建我添加到div的对象并追加以创建新元素。但我没有得到loop决定输出。创建和与对象相关使得不需要的结果

这里是代码:

var obj = {el:{}}; 

var newdiv = $('.div').clone(); 

var col = $('<div />'); 

for(i=0;i<10; i++) { 
    obj.el['el'+i] == undefined ? obj.el['elm'+i] = {} : null; 
    obj.el['el'+i] = newdiv.removeClass('div').addClass('show'); 
    $(obj.el['el'+i]).appendTo(col); 
} 

$(col).appendTo('#content'); 

console.log(col.children()); 

Live

+1

你只有一个克隆工作。循环的每次迭代只会将相同的克隆添加到相同的元素,实际上什么都不做。也许你打算把'.clone'调用放在循环中? http://jsfiddle.net/L6q58tf9/ – blgt

回答

1

我想你想

var $newdiv = $('.div').clone().removeClass('div').addClass('show'), 
    $col = $('<div />'); 

for(var i=0; i<10; i++) 
    $newdiv.clone().appendTo($col); 

$col.appendTo('#content'); 

console.log($col.children()); 

在你的代码,你只克隆$('.div')一次,所以你总是追加相同的元素。相反,您应该在每次迭代时克隆元素。

相关问题