2013-11-25 3 views
4

는 여기에 내가, 아무것도 일을 다른 항목을 찾아 추가하려고하면 문제가 내 코드동일한 html 요소를 두 번 삽입하는 방법은 무엇입니까?

elementol = document.createElement("ol"); 
    var longueur = titres.length; 
    for (k = 0; k < longueur ; ++k) { 
    elementli = document.createElement("li"); 
    elementli.appendChild(
     document.createTextNode(
     titres[k].firstChild.nodeValue 
    ) 
    ); 
    elementol.appendChild(elementli); 
    } 
    body = document.getElementsByTagName("body").item(0); 
    body.appendChild(elementol); 

의 일부입니다. 예를 들어 내가 좋아하는 뭔가 줄 끝에서 라인을 두 배로 경우 :

body = document.getElementsByTagName("body").item(0); 
    body.appendChild(elementol); 
    body = document.getElementsByTagName("body").item(0); 
    body.appendChild(elementol); 

첫 번째 APPEND 작업이 아니라 두 번째, 내가 두 번 내 결과가 없습니다. 나는이 언어에 익숙하지 않고 코드를 발견했지만 여러 값을 추가하는 방법을 모른다.

감사합니다.

답변

9

노드는 한 번에 트리의 두 위치에있을 수 없습니다.

두 번째 복제에는 .cloneNode(true)을 사용하십시오.

document.body.appendChild(elementol); 
document.body.appendChild(elementol.cloneNode(true)); 

true 인수를 사용하면 하위 항목도 복제 할 수 있습니다.

+0

위대한 내가 두 번 같은 노드를 읽을 수 없다는 것을 이해하지만 다른 노드를 읽는 방법? 왜냐하면 다른 노드를 읽으려고해도 똑같은 문제가 있기 때문입니다. ? – baronming

+0

복제 된 것을 의미합니까? 그것을 변수에 저장하십시오. –

관련 문제