2014-03-28 3 views
1

내가 콘솔노드는

thead=document.createElement('thead') 
thead.appendChild((document.createElement('th')).appendChild(document.createTextNode('Inner Text'))) 

에 다음 줄을 실행 실행되지하지만 THEAD 실행할 때, 리턴는 내용으로 '내부 텍스트'와 'THEAD'태그입니다. 명령 실행마다 'th'태그가 없습니다.

왜 작동하지 않습니까?

+0

'thead'가 _ 문서 _에 추가되기 전에 추가 명령에 대해 걱정하지 마세요. 아직 채색되지 않기 때문에 –

+0

'('''before'createElement ('th')', 줄 끝의')를 사용합니다. 그런데 왜 처음에는 'thead'에 'th'를 넣고 있습니까? 그것은'tr'에 속한다. –

답변

3

.appendChild() 반환 첨부 된 아이 : 당신이 원하는 경우

var thead=document.createElement('thead'); 
var th = document.createElement('th'); 
th.appendChild(document.createTextNode('Inner Text')); 
thead.appendChild(th); 

한 줄로 추가 노드의 .parentNode이라고 부를 수 있습니다 :

thead.appendChild(document.createElement('th').appendChild(document.createTextNode('Inner Text')).parentNode) 
+0

마지막 줄은 질문의 코드와 동일합니다. –

+0

@cookiemonster 아니, 아니야, 줄 끝에서 확인하십시오. – xdazz

+1

죄송합니다.'document.createElement ("th")'주위에 여분의'()'이 있기 때문에 질문의 괄호가 엉망입니다. 더 깨끗한 해결책은'thead.appendChild (document.createElement ('th')) .appendChild (document.createTextNode ('Inner Text'))''.parentNode'가 필요 없습니다. 질문에 정의 된 순서를 수정하면됩니다. –

1

node.appendChild()은 추가 된 요소 인을 반환합니다.

addendChild 메서드는 추가 된 노드에 대한 참조를 반환합니다.

Source

당신이 뭔가를 헤어지고 싶어

...

var thead = document.createElement('thead'); 
var th = document.createElement('th'); 
thead.appendChild(th); 
th.appendChild(document.createTextNode('Inner Text'))); 
+0

https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild에 따르면 그렇습니다. –

+0

@FelixKling 내가 잘못 작성 했으니 이제는 정확해야한다. – alex