XML DOM insertBefore() 메서드
정의 및 사용법
insertBefore() 메서드는 존재하는 자식 노드 앞에 새 자식 노드를 삽입할 수 있습니다.
이 메서드는 새 자식 노드를 반환할 수 있습니다.
문법:
insertBefore(newchild, refchild)
파라미터 | 설명 |
---|---|
newchild | 새 노드를 삽입하세요 |
refchild | 이 노드 앞에 새 노드를 삽입하세요 |
힌트 및 주의사항
주의사항:Internet Explorer는 노드 간에 생성된 공백 텍스트 노드(예: 개행 기호)를 무시하며, Mozilla는 이렇게 하지 않습니다. 따라서 아래의 예제에서는 마지막 자식 노드의 노드 타입을 확인하는 함수를 사용할 것입니다.
요소 노드의 노드 타입은 1입니다. 따라서 첫 번째 자식 노드가 요소 노드가 아니면, 다음 노드로 이동하여 이 노드가 요소 노드인지 확인합니다. 이 과정은 첫 번째 요소 자식 노드가 발견되까지 지속됩니다. 이 방법을 통해 Internet Explorer와 Mozilla에서 올바른 메서드를 얻을 수 있습니다.
힌트:IE와 Mozilla 브라우저 간 XML DOM의 차이에 대한 더 많은 내용을 원하시면 우리의 DOM 브라우저 장절.
예제
모든 예제에서 우리는 XML 파일을 사용할 것입니다 books.xml, 및 JavaScript 함수 loadXMLDoc()
아래의 프래그먼트는 새로운 <book> 노드를 생성하고, 문서의 마지막 <book> 요소 앞에 이 노드를 삽입할 수 있습니다.:
//최종 자식 노드가 요소 노드인지 확인
function get_lastchild(n)
{
var x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
return x;
xmlDoc=loadXMLDoc("books.xml");
var newNode=xmlDoc.createElement("book");
var newTitle=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode, get_lastchild(x));