2014-02-11 7 views
3

어떻게 요소를 자바 스크립트로 만들고 요소를 동적으로 추가합니까?div 요소를 만들고 동적으로 자식 요소를 추가하십시오.

HTML에이 요소를 만들고 요소를 동적으로 추가하면 정상적으로 작동합니다.

<!-- THIS WILL WORK --> 
<div id="wrapper"></div> 

하지만이 작동하지 않습니다

// THIS WILL NOT WORK 
var container = document.createElement('div'); 
container.id = "wrapper"; 

추가 코드 :

var html = '<div><ul>'; 

for(var i=1; i<=40; i++){ 
    html+= "<li>Testing: "+i+"</li>"; 
} 

html+= '</ul></div>'; 

$('#wrapper').append(html); 

Fiddle

+0

@wared -'document.createElement()'를 사용하여 만든 요소에 요소를 추가 할 수 있는지 알고 싶었습니다. HTML을 사용하여 만든 요소가 아닙니다. – JunM

+0

페이지 새로 고침 :) – leaf

답변

8

var container = document.createElement('div'); 
container.id = "wrapper"; 

var layout = document.getElementById('layout'); 
layout.appendChild(container); 

var html = '<div><ul>'; 

for(var i=1; i<=40; i++){ 
    html+= "<li>Testing: "+i+"</li>"; 
} 

html+= '</ul></div>'; 

container.innerHTML = html; 
는 코드의
+0

훌륭한 작품. 고맙습니다. – JunM

4

당신은 요소를 추가 appendChild(element)를 호출해야합니다. 예를 들어 :

var h1 = document.createElement("h1"); 
h1.textContent = "Title"; 
document.body.appendChild(h1); 

귀하의 경우에는이 있습니다 :

var parent = document.body; // or another one like document.getElementById("othercontainer") 
parent.appendChild(container); 
+0

'document.createElement ('div'')를 사용하여 만든 요소에 추가 할 수 있습니까? – JunM

+0

@JunM 추가되지 않았습니다. 작성되었습니다. 직접 DOM 트리에 삽입해야합니다. 사실,'document.createElement()'는 DIV를 추가 할 곳을 스스로 결정할 수 없습니다. – leaf

+0

@JunM 방금 말한 것의 보완 내용 : http://www.w3schools.com/js/js_htmldom.asp – dooxe

1

당신은 다음과 같이 jQuery를 사용할 수 있습니다

$(document).append('<div id="wrapper" />'); 
1

당신은 당신의 HTML 페이지에 래퍼를 삽입해야합니다.

이 작동합니다 :

HTML :

<div id="layout"> 

</div> 

JS를 :

$(function() { 
var container = document.createElement('div'); 
container.id = "wrapper"; 

$('body').append(container); 

var html = '<div><ul>'; 

for(var i=1; i<=40; i++){ 
    html+= "<li>Testing: "+i+"</li>"; 
} 

html+= '</ul></div>'; 

$('#wrapper').append(html); 
}); 
012 : 여기

http://jsfiddle.net/Zd2rw/

관련 문제