2009-05-05 6 views
1

나는자바 스크립트 TextNode 업데이트

var t = document.createTextNode(text) 
parent.appendChild(t); 

이있는 경우는 단순히 t의 내용을 업데이트 할 수 있습니까?

parent 안에있는 텍스트를 removeChild, createTextNodeappendChild없이 변경하고 싶습니다. 왜 내가 innerHTML을 사용하는 대신이 것이 필요할까요? 요소의 내용을 HTML 코드로 업데이트하고 싶지 않고 text에 의 DOM 메소드로 구문 분석해야하는 < 또는 &과 같은 특수 문자가 포함될 수 있습니다.

감사합니다,

+0

실제 HTML 또는 실제로 일반 텍스트를 표시 하시겠습니까? – Tomalak

+0

부모 내부의 텍스트를 변경하여 일반 텍스트로 표시하려고합니다 (예 : DOM을 <<으로 바꿉니다). – Tom

답변

11

인접 텍스트 노드가 (정말 두 개의 인접한 텍스트 노드를 구별 할 수있는 방법이 없기 때문에) 하나에 붕괴되는 것을주의하십시오.

텍스트 노드의 내용은 nodeValue 속성 (MDC 참조)을 사용하여 업데이트 할 수 있습니다.

텍스트 노드는 매우 정의되어 있으므로 마크 업을 포함 할 수 없기 때문에 innerHTML 속성이 없습니다.

+0

완벽 :) 그냥 내가 뭘 찾고 – Alex

2

는) 다음 replaceData 같은 다양한 기능을 사용하여 콘텐츠를 (변경할 수 있습니다 (귀하의 예제 코드에서 t)하여 TextNode 개체의 인스턴스를 유지하는 경우, 및 substringData(), 등

좋은 참조 할 수 있도록이 페이지를 참조하십시오 : http://msdn.microsoft.com/en-us/library/ms535905(VS.85).aspx#

1
parent.innerText = text; 
+0

그 원인의 대안이야. 텍스트 노드에 대해 구체적으로 묻고 있다고 생각했습니다. – Tomalak

+0

"부모님 내부의 텍스트를 변경하고 싶습니다."라고 말하면서 내가 어떻게 신경 쓰지는 않았는지, DOM을 사용하여 HTML을 이스케이프 처리하는 매우 단순한 것을 원한다. – Tom

+0

예. 나는 샘플 코드에 너무 집중했다. ;-) – Tomalak