2010-03-16 7 views
2
//I am cloning a dom element and inserting it in dom element multiple times 

    <div class='toBeCloned'>some text</div> 
    <div id='target'></div> 

    var _clone=$('.toBeCloned').clone(true);//create clone 
    var _target=$('#target'); //this is target 

    _target.append(_clone); //append target 
    _target.append(_clone); //append target 
    _target.append(_clone); //append target 

//this should add 3 elements but it's adding only one 
+1

@Praveen 앞으로 질문에 대한 답변을 빨리받지 못하면 새 질문을 게시하지 마십시오. 나는 당신이 원래의 질문에 답을 마친 지 1 분 만에 다시 여기에 올렸습니다. - 또한 질문을 단순화하려면 원본을 편집하십시오. 사본으로 이것을 닫는 투표. –

답변

7

append 여기에 조금 이상한 모든 div에 대해).
당신이 3 개 요소를 만들려면, 단순히 전화 clone 3 회 :

var _clone=$('.toBeCloned'); 
var _target=$('#target'); //this is target 

for(var i=0;i<3;i++){ 
    _target.append(_clone.clone(true)); //append target, clone every time 
} 
+0

+1 좋은 답변 Kobi. 당신이 그 설명을 매우 분명하게 추가했기 때문에 다행입니다! –

0

DOM 요소가 최대 하나의 부모를 가질 수 있기 때문에, DOM을 여러 번에 하나의 요소를 삽입하는 개념적 이상하다 (가난한 요소 !). 이벤트를 같은 컨테이너에 삽입하면 자신의 형제가되는 것은 여전히 ​​이상한 일이므로 동등하게 배제됩니다.

다른 요소에 추가 될 때마다 요소가 구조체에서 제거됩니다 (하나 인 경우).

나는 지금 순수한 js와 DOM에 대해 말했습니다.

jQuery의 append은 요소를 복제하지 않지만 요소 집합에서 호출되는 경우 "편리하게"수행됩니다.

+0

'append'는 요소를 그 위치에서 제거 할 수 있으며 ** 여러 요소에 추가하여 여러 번 복제 할 수 있습니다. (위의 설명과 예제는 http://jsbin.com/udiya 참조). 이 경우 OP (원래 포스터)가 단일 요소에 추가되므로 3 번 아무데도 움직이지 않습니다. – Kobi

+0

아, 죄송합니다. 셀렉터가 세트를 돌려주는 경우 jQuery는 (단일 요소 또는 집합)에서 호출 된 모든 요소에 적응하는 것처럼 보이기 때문에 내 눈에서 반복을 숨겼습니다. – npup