2013-07-06 8 views
2

특수 문자가 포함될 수 있으므로 CreateTextNode를 통해 일부 텍스트를 처리해야합니다. content이 DOM에 삽입 될 때 연결을 통해 createTextNode()를 사용하는 방법

/* var status holds some text */ 

contentStatus = document.createTextNode(status); 

content = '<div id="user">' + name +'</div><div id="stat">' + contentStatus + '</div>';  

는 지금 contentStatus 단순히 [object Text]로 게재된다

것은 내가 동등한를 어떻게 될지 궁금하네요.

어디에서 봐도 나는 appendChildCreateTextNode과 함께 사용됩니다. 위와 동등한 효과를 얻을 수있는 방법은 무엇입니까?

+0

왜 연결에'status'의 텍스트를 넣을 수 없습니까? –

+0

'content'를 문자열로 파싱하면'contentStatus' 할당을 건너 뛰고'concat '문자열'content'에 직접'status'를 넣을 수도 있습니다. –

+0

내 문자열 입력을 DOM에 위생 처리하는 방법을 찾기 위해 CreateTextNode()를 참조했습니다. 기본적으로 사용자가 '

sometext
'또는 이에 상응하는 값을 입력하지 못하게하려고합니다. 현재 클래스 및 div가 렌더링되어 실제 텍스트로 표시되지 않습니다. – LazerSharks

답변

1

사용 textContent 특성 :

content = '<div id="user">' + name+'</div>' 
+'<div id="stat">' 
+ contentStatus.data//This takes the actual string 
+ '</div>';  

하지만 더 좋은 방법이있다 : 당신이 DOM 요소를 처리하고 이제 그들을 조작 할 수 있기 때문에

var user = document.createElement('div'); 
curName = document.createTextNode(name); 
user.appendChild(name); 
user.id = "user"; 
var stat = document.createElement('div'); 
stat.id = "stat"; 
contentStatus = document.createTextNode(status); 
stat.appendChild(contentStatus); 
user.appendChild(stat); 
console.log(user);// <div id=​"user">​…​</div>​ 

이 방법이 더 좋습니다.

+0

첫 번째 방법은 빠르며 효과적이었습니다. – LazerSharks

+1

@Gnuey 기꺼이 도와 드리겠습니다. 나중에 두 번째 방법을 사용하면 오류가 덜 발생하는 것을 경험했습니다. – raam86

+1

아, 괜찮아요, 앞으로 내 코딩 프로젝트에서이 점에 유의할 것입니다. 감사합니다. 감사합니다. 감사합니다. 이 메소드에 대한 추천을 위해 다시 – LazerSharks