
DomCharacterData::replaceWith 메서드는 특정 노드의 텍스트 콘텐츠를 다른 텍스트로 교체하는 역할을 합니다. 이 메서드를 사용할 때 주의해야 할 사항은 다음과 같습니다.
1. 교체할 문자열의 첫 번째 인덱스가 노드의 텍스트 콘텐츠의 시작 인덱스인지, 끝 인덱스인지에 따라 교체 결과가 달라질 수 있습니다. 예를 들어, 노드의 텍스트 콘텐츠가 "Hello, World!"이고 교체할 문자열이 "World"일 때, 시작 인덱스인 경우 "Hello, !!"로 교체되지만 끝 인덱스인 경우 ""로 교체됩니다.
2. 교체할 문자열이 노드의 텍스트 콘텐츠 내에 여러 번 등장하는 경우, 교체할 문자열의 모든 인스턴스가 교체됩니다. 예를 들어, 노드의 텍스트 콘텐츠가 "Hello, World! Hello, World!"이고 교체할 문자열이 "World"일 때, 모든 "World"가 ""로 교체됩니다.
3. 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하지 않는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에 추가됩니다. 예를 들어, 노드의 텍스트 콘텐츠가 "Hello, World!"이고 교체할 문자열이 "Universe"일 때, 노드의 텍스트 콘텐츠가 "Hello, World! Universe"로 변경됩니다.
4. 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에서 제거됩니다. 예를 들어, 노드의 텍스트 콘텐츠가 "Hello, World! Hello, World!"이고 교체할 문자열이 "World"일 때, 노드의 텍스트 콘텐츠가 "Hello, ! Hello, !"로 변경됩니다.
5. 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에 추가됩니다. 예를 들어, 노드의 텍스트 콘텐츠가 "Hello, World!"이고 교체할 문자열이 "Universe"일 때, 노드의 텍스트 콘텐츠가 "Hello, World! Universe"로 변경됩니다.
교체할 문자열의 첫 번째 인덱스가 노드의 텍스트 콘텐츠의 시작 인덱스인지, 끝 인덱스인지에 따라 교체 결과가 달라질 수 있으므로, 교체할 문자열의 첫 번째 인덱스를 정확하게 지정해야 합니다.
교체할 문자열이 노드의 텍스트 콘텐츠 내에 여러 번 등장하는 경우, 교체할 문자열의 모든 인스턴스가 교체됩니다. 따라서, 교체할 문자열의 모든 인스턴스를 교체하기 위해, 교체할 문자열의 첫 번째 인덱스를 노드의 텍스트 콘텐츠의 시작 인덱스로 지정해야 합니다.
교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하지 않는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에 추가됩니다. 따라서, 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하지 않는 경우, 교체할 문자열을 노드의 텍스트 콘텐츠에 추가하기 위해, 교체할 문자열을 노드의 텍스트 콘텐츠의 끝 인덱스로 지정해야 합니다.
교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에서 제거됩니다. 따라서, 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열을 노드의 텍스트 콘텐츠에서 제거하기 위해, 교체할 문자열을 노드의 텍스트 콘텐츠의 시작 인덱스로 지정해야 합니다.
교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열이 노드의 텍스트 콘텐츠에 추가됩니다. 따라서, 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우, 교체할 문자열을 노드의 텍스트 콘텐츠에 추가하기 위해, 교체할 문자열을 노드의 텍스트 콘텐츠의 끝 인덱스로 지정해야 합니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
javascript
const node = document.createTextNode("Hello, World!");
const data = node.data;
// 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하지 않는 경우
node.replaceData(0, data.length, "Universe");
console.log(node.data); // "Universe"
// 교체할 문자열이 노드의 텍스트 콘텐츠 내에 존재하는 경우
node.replaceData(0, 6, "");
console.log(node.data); // ", World!"
// 교체할 문자열이 노드의 텍스트 콘텐츠 내에 여러 번 등장하는 경우
node.replaceData(0, data.length, "Hello, World! Hello, World!");
console.log(node.data); // "Hello, World! Hello, World! Hello, World! Hello, World!"
참고 자료는 다음과 같습니다.
* [MDN Web Docs - DOMCharacterData.replaceData()](https://developer.mozilla.org/ko/docs/Web/API/DOMCharacterData/replaceData)
* [MDN Web Docs - DOMCharacterData.replaceWith()](https://developer.mozilla.org/ko/docs/Web/API/DOMCharacterData/replaceWith)
2025-07-03 14:04