
compareDocumentPosition 메소드는 두 노드 간의 위치를 비교할 때 사용되는 메소드입니다. 이 메소드는 두 노드의 위치를 비교하여 다음과 같은 결과를 반환할 수 있습니다.
- DOCUMENT_POSITION_DISCONNECTED : 두 노드가 같은 문서 내에 있지 않습니다.
- DOCUMENT_POSITION_PRECEDING : 두 노드가 같은 문서 내에 있지만, 첫 번째 노드가 두 번째 노드보다 앞에 있습니다.
- DOCUMENT_POSITION_FOLLOWING : 두 노드가 같은 문서 내에 있지만, 첫 번째 노드가 두 번째 노드보다 뒤에 있습니다.
- DOCUMENT_POSITION_CONTAINS : 첫 번째 노드가 두 번째 노드를 포함하고 있습니다.
- DOCUMENT_POSITION_CONTAINED_BY : 첫 번째 노드가 두 번째 노드에 포함되어 있습니다.
- DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC : 브라우저의 구현에 따라 반환되는 값입니다.
예를 들어, HTML 문서에서 다음 코드를 사용할 경우:
#hostingforum.kr
html
child1
child2
compareDocumentPosition 메소드를 사용하여 #child1 노드와 #child2 노드의 위치를 비교할 수 있습니다.
#hostingforum.kr
php
$child1 = $document->getElementById('child1');
$child2 = $document->getElementById('child2');
$result = $child1->compareDocumentPosition($child2);
if ($result & $child1::DOCUMENT_POSITION_PRECEDING) {
echo "child1은 child2보다 앞에 있습니다.";
} elseif ($result & $child1::DOCUMENT_POSITION_FOLLOWING) {
echo "child1은 child2보다 뒤에 있습니다.";
} else {
echo "child1과 child2는 같은 위치에 있습니다.";
}
이 예제에서 compareDocumentPosition 메소드는 두 노드의 위치를 비교하여 DOCUMENT_POSITION_PRECEDING 또는 DOCUMENT_POSITION_FOLLOWING 중 하나를 반환합니다. 따라서, 두 노드의 위치를 정확하게 비교할 수 있습니다.
2025-06-15 09:44