2016-06-19 2 views
1

javascript 라이브러리에 의해 생성 된 div 요소가 있습니다. ID가 auto수동으로 생성 된 div 아래에서 생성 된 div를 appendChild하는 방법은 무엇입니까?

인 것으로 가정하고 수동으로 ID가 manual 인 HTML div 요소를 만들었습니다.

생성 된 div#autodiv#manual으로 어떻게 옮깁니 까?

생성 된 div 요소는 문서 트리의 일부가 아닙니다. 그래서 나는 단지 appendChild을 넣을 수 없다. auto 아래에 manual

어떤 생각?

당신이 볼 수 있듯이

var element = document.createElement("div"); 
 
element.id = 'generated'; 
 

 
var el = document.getElementById('element'); 
 
console.log(el)
<div id="manual">Place #generated as child of me</div>

, 나는이 문서 트리에 있지 않기 때문에 생성 된 DIV 요소가 #generated 타겟팅 할 수 없습니다. 선택할 수 없으면 #manual에 배치 할 수 없습니다. 코드에서

+3

이 몇 가지 코드를 보여주십시오. – Mairaj

+1

라이브러리는 DOM 요소를 참조하는 가난한 사람의 ID 인 ID를 반환해서는 안되며, 이미 트리에없는 경우 ID 요소를 찾는 데 사용할 수 없습니다. 대신 DOM 요소 자체를 반환해야합니다.이 요소는'manual' 아래에 삽입 할 수 있습니다. –

+0

이 [bin] (http://jsbin.com/midaya/edit?html,css,js,output)에서 나는 정확하게 이것을하고 있습니다. 그렇지 않니? –

답변

1

:

var element = document.createElement("div"); 
element.id = 'generated'; 

var el = document.getElementById('element'); 
console.log(el) 

element이미 요소에 대한 참조입니다. getElementById을 통해 다시 검색 할 이유가 없습니다. 당신이 가진 참조를 사용하십시오. getElementById은 아직 DOM에 없으므로 찾지 못합니다. 당신이 이미에 대한 참조를 가지고, 점,하지만 (는 DOM에 그리고 getElementById 그것을 발견 할 것이다, 다시, 당신이 필요로하지 않는 것이 에서

var element = document.createElement("div"); 
element.id = 'generated'; 

document.querySelector("#manual").appendChild(element); 
// -------------------------------------------^ 

가 :

그러니 그냥 element 사용 element).

라이브 예 : 는 (I 테두리를 추가하고 그 결과가 무엇인지는 명확하게하기 위해 일부 콘텐츠 생성 사업부를 준) 필요에 대한이 없다는 것을

var element = document.createElement("div"); 
 
element.id = 'generated'; 
 
element.innerHTML = "generated"; 
 

 
document.querySelector("#manual").appendChild(element);
div { 
 
    border: 1px solid black; 
 
    padding: 2px; 
 
}
<div id="manual">Place #generated as child of me</div>

주 이렇게하려면 생성 된 div에 id이 있어야합니다. 당신이이 id을 가진위한 다른 이유가있는 경우에는 문제가되지 않으나, 당신이 그것을 필요가 없습니다

var element = document.createElement("div"); 
 
element.innerHTML = "generated"; 
 

 
document.querySelector("#manual").appendChild(element);
div { 
 
    border: 1px solid black; 
 
    padding: 2px; 
 
}
<div id="manual">Place generated div as child of me</div>

+0

이것이 허용 된 대답이어야합니다. – lindsay

+0

고마워요! 그리고 그것이 문제입니다. 소스를 검사하면 #generated가 #manual 하위 하위로 배치되지 않습니다. 왜냐하면 #generated가 아직 문서에 없기 때문입니다. 생성 된 div 요소를 문서 트리에 어떻게 삽입합니까? Divs는 HTML로 작성됩니다 (문서 트리에서). JS (문서 트리가 아님)로 코딩 된 Divs. – Vennsoh

+0

@Vennsoh : * "소스를 검사하면 # 생성 된 #이 수동으로 하위로 배치되지 않습니다."* "소스보기"는 DOM의 현재 상태를 표시하지 않고 전달 된 HTML을 보여줍니다 서버에서. DOM의 현재 상태를 보려면 최신 브라우저에서 요소를 마우스 오른쪽 단추로 클릭하고 "Inspect"또는 "Inspect Element"를 선택합니다. –