logo

Javascript에서 상위 요소를 얻는 방법

JavaScript는 프로그래머에게 동적인 대화형 웹 사이트를 만들 수 있는 능력을 제공하는 강력한 스크립팅 언어입니다. 특정 요소의 상위 요소를 찾는 것은 DOM(문서 개체 모델) 작업 시 자주 수행되는 작업입니다.

여기서는 이를 달성하기 위한 다양한 JavaScript 기반 접근 방식을 살펴보겠습니다.

HTML 요소의 부모 요소는 가장 쉬운 방법인 parentNode 속성을 활용하여 찾을 수 있습니다. 요소가 제공되면 이 속성은 DOM 트리에서 해당 요소의 상위 노드를 반환합니다. 다음 예에서는 이 속성을 사용하는 방법을 설명합니다.

 const childElement = document.getElementById('child-element'); const parentElement = childElement.parentNode; 

getElementById 메소드는 위의 코드 조각에서 먼저 ID별로 하위 요소를 선택하는 데 사용됩니다. 그런 다음 parentNode 속성을 사용하여 상위 요소를 parentElement 변수에 할당합니다.

parentElement 속성 사용: DOM은 parentNode 속성 외에도 HTML 요소의 상위 요소를 얻는 데 사용할 수 있는 유용한 parentElement 속성을 제공합니다. 응용 프로그램은 이전 기술과 매우 유사합니다.

 const childElement = document.getElementById('child-element'); const parentElement = childElement.parentElement; 

좀 더 설명적이고 이해하기 쉬운 방법으로 parentElement 속성을 사용하면 동일한 결과를 얻을 수 있습니다.

가장 가까운() 메소드 사용: close() 메서드는 최신 브라우저에서 제공하는 또 다른 효과적인 도구입니다.

토치 설치

이 기술을 사용하면 CSS 선택기 트리의 어떤 요소가 요소의 직접적인 조상인지 결정할 수 있습니다. 다음 예에서는 Nearest() 기술을 사용하는 방법을 보여줍니다.

 const childElement = document.getElementById('child-element'); const parentElement = childElement.closest('.parent-class'); 

그런 다음 위 코드에서는 getElementById 메서드를 사용하여 하위 요소를 선택한 후 CSS 선택기를 인수로 제공하여 Nearest() 함수가 호출됩니다. 지정된 선택 항목과 일치하는 요소의 첫 번째 조상은 close() 함수에 의해 반환됩니다.

이 경우, 하위 요소의 가장 가까운 조상인 'parent-class' 클래스를 가진 요소가 우리가 찾으려고 하는 요소입니다.

순회 방법 사용: JavaScript가 제공하는 다양한 순회 방법 중 하나를 사용하여 DOM 트리를 탐색할 수 있습니다. parentNode, PreviousSibling, nextSibling, firstChild 및 lastChild 메서드가 그 중 하나입니다. 이러한 기술을 결합하여 특정 요소의 상위 요소로 이동할 수 있습니다. 예를 들어 다음을 고려하십시오.

 const childElement = document.getElementById('child-element'); const parentElement = childElement.parentNode; 

이 코드 줄에서는 먼저 getElementById를 사용하여 하위 요소를 선택한 다음 parentNode 속성을 사용하여 상위 요소를 가져옵니다. 이러한 순회 기술을 사용하면 DOM 트리를 위아래로 탐색하여 필요한 상위 또는 하위 요소를 찾을 수 있습니다.

이벤트 처리를 위해 parentElement 속성 사용: JavaScript 이벤트 핸들러를 사용할 때 이벤트 대상의 상위 요소에 액세스해야 할 수도 있습니다. 예를 들어, 버튼 목록이 있고 부모 요소에서 버튼을 클릭할 때 어떤 작업을 수행하려는 경우 이벤트 핸들러의 parentElement 속성을 사용할 수 있습니다.

다음은 예시입니다.

 const buttons = document.querySelectorAll('.button'); buttons.forEach((button) => { button.addEventListener('click', function(event) { const parentElement = event.target.parentElement; // Perform actions on the parent element }); }); 

querySelectorAll을 사용하여 위 코드 샘플에서 '버튼' 클래스가 있는 모든 구성 요소를 선택합니다. 그런 다음 각 버튼에는 forEach 함수를 사용하여 연결된 클릭 이벤트 리스너가 있습니다.

event.target.parentElement를 사용하여 이벤트 핸들러 내부의 상위 요소에 액세스합니다. 결과적으로 버튼을 클릭하면 상위 요소에 대한 작업을 수행할 수 있습니다.

동적 요소와 함께 상위 요소 속성 활용:

웹 애플리케이션에서 동적으로 생성된 요소로 작업하는 경우 새로 형성된 요소의 상위 요소에 액세스해야 하는 상황이 발생할 수 있습니다.

DOM에 요소를 추가한 후 특정 상황에서 상위 요소 속성을 사용할 수 있습니다.

예를 들어 다음을 고려하십시오.

 const parentElement = document.getElementById('parent-element'); function createNewElement() { const newElement = document.createElement('div'); // Manipulate the new element parentElement.appendChild(newElement); const newElementParent = newElement.parentElement; // Access the parent element of the newly created element } 

이 코드 줄에서는 먼저 getElementById를 사용하여 상위 요소를 선택합니다. 그런 다음 createNewElement 함수 내에서appendChild 함수를 사용하여 새 요소를 만들고 필요에 따라 수정한 다음 상위 요소에 추가합니다.

parentElement 속성을 사용하면 새 요소를 DOM에 추가한 후 해당 요소의 상위 요소를 가져올 수 있습니다.

offsetParent 속성 사용:

어떤 상황에서는 특정 요소의 가장 가까운 위치에 있는 조상인 요소를 찾고 싶을 수도 있습니다. offsetParent 속성을 사용하여 이를 수행할 수 있습니다. 기본 위치 지정인 static 이외의 위치를 ​​가진 가장 가까운 조상 요소를 반환합니다.

다음은 예시입니다.

 const childElement = document.getElementById('child-element'); const positionedAncestor = childElement.offsetParent; 

앞서 언급한 코드 조각에서는 먼저 getElementById 메서드를 사용하여 하위 요소를 선택한 다음 offsetParent 특성을 사용하여 positionedAncestor라는 변수에 가장 가까운 위치의 조상 요소를 지정합니다.

다양한 노드 유형과 함께 parentNode 속성 사용:

HTML 요소의 상위 요소에 접근하는 것 외에도 DOM 트리를 탐색하고 텍스트 노드 및 주석 노드와 같은 여러 노드 종류의 상위 요소에 접근할 수 있습니다.

다양한 노드 유형에서 작동하는 parentNode 속성을 사용하면 DOM 트리를 더 쉽게 탐색할 수 있습니다. 예를 들어 다음을 고려하십시오.

 const textNode = document.createTextNode('Hello, World!'); const parentElement = textNode.parentNode; 

이 예에서는 createTextNode 함수를 사용하여 텍스트 노드를 생성합니다. 그런 다음 parentNode 속성을 사용하여 상위 요소를 검색합니다. 다양한 노드가 포함된 복잡한 DOM 구조를 처리할 때 이 전략이 도움이 될 수 있습니다.

Shadow DOM과 함께 parentElement 속성 사용:

DOM 트리와 CSS 스타일을 캡슐화할 수 있는 웹 기술인 Shadow DOM으로 작업하는 경우 Shadow DOM 경계 내부의 상위 요소에 액세스해야 할 수도 있습니다.

이 경우 parentElement 속성도 적용 가능합니다.

예를 들어 다음을 고려하십시오.

 const shadowRoot = document.getElementById('shadow-root').shadowRoot; const childElement = shadowRoot.getElementById('child-element'); const parentElement = childElement.parentElement; 

위 코드에서는 먼저 섀도우 루트를 획득하기 위해 호스트 요소의 ShadowRoot 속성을 사용합니다. 그런 다음 getElementById 함수를 사용하여 해당 ID를 기반으로 섀도우 루트 내의 하위 요소를 선택합니다.

parentElement 속성을 사용하여 마침내 부모 요소를 검색할 수 있습니다. 이를 통해 Shadow DOM 내부에서도 상위 요소에 액세스할 수 있습니다.

offsetParent 속성을 사용하여 위치가 지정된 요소:

살만 칸 칸 나이

명시적으로 필요한 경우 offsetLeft 및 offsetTop 속성과 함께 offsetParent 속성을 사용하여 지정된 요소의 가장 가까운 위치에 있는 조상 요소를 찾을 수 있습니다.

다음은 예시입니다.

 const element = document.getElementById('target-element'); let positionedAncestor = element.offsetParent; while (positionedAncestor && getComputedStyle(positionedAncestor).position === 'static') { positionedAncestor = positionedAncestor.offsetParent; } 

getElementById를 사용하여 먼저 이 코드 줄에서 대상 요소를 선택합니다. 그런 다음 대상 요소의 offsetParent를 사용하여 positionedAncestor 변수를 초기화합니다.

다음 단계는 while 루프를 사용하여 현재 positionAncestor의 계산된 위치가 '정적'인지 확인하는 것입니다.

positionAncestor는 현재 positionedAncestor의 offsetParent로 업데이트됩니다.

이 프로세스는 현재 위치에 가장 가까운 조상을 찾거나 DOM 트리의 맨 위에 도달할 때까지 계속됩니다.

이러한 추가 전략과 방법을 사용하면 JavaScript에서 상위 요소를 검색하는 기능을 더욱 향상시킬 수 있습니다. 이러한 방법은 Shadow DOM 처리, 다양한 노드 종류 처리, 가장 가까운 조상 찾기 등 다양한 문제에 대한 답을 제공합니다.

귀하의 고유한 요구 사항을 충족하고 DOM 조작 기술을 향상시키는 기술을 선택하십시오.

최신 방법이나 기능을 사용하는 경우 다양한 브라우저에서 코드를 철저히 테스트하여 호환성을 확인하는 것을 잊지 마십시오.

이러한 개념을 확실히 이해한 후에는 JavaScript에서 상위 요소로 작업하고 동적인 대화형 온라인 경험을 구축할 수 있는 지식과 능력을 갖추게 됩니다.

이제 상위 요소에 접근하기 위해 JavaScript에서 추가 메소드를 사용할 수 있습니다.

이러한 기술을 이해하면 이벤트 처리, 동적 요소를 사용하거나 가장 가까운 위치의 조상을 검색해야 하는 경우 DOM을 적절하게 수정하고 상호 작용하는 능력이 향상됩니다.

브라우저 호환성과 프로젝트의 정확한 요구 사항을 염두에 두고 항상 고유한 사용 사례에 가장 적합한 접근 방식을 선택하세요. 이러한 방법을 활용하면 JavaScript의 상위 구성 요소를 쉽게 탐색하고 작업하는 데 필요한 기술을 갖추게 됩니다.