>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 기술에서 상위 노드를 찾는 간단한 방법

javascript_javascript 기술에서 상위 노드를 찾는 간단한 방법

WBOY
WBOY원래의
2016-05-16 19:10:431116검색

제목

  • 프로젝트 1


    •                                                          >하위 카테고리 1
    •                                                            >프로젝트 1

    •                                                                                       트리거된 이벤트와 매개변수가 동일하기 때문에 사용자가 "항목 x"를 클릭하는지 "하위 카테고리"를 클릭하는지 구분할 수 있습니다. 요소는 루트 노드인 xml 문서에서 수직 위치(노드 깊이)로 구별됩니다. 예를 들어
    • 에서 "Project One"의 노드 깊이는 2이고 "Subclass"의 노드 깊이는 다음과 같습니다. One"은 4입니다. 노드 깊이를 계산하고 재귀적 방법을 제외한 후 더 간단한 방법을 찾습니다.


    function parentIndexOf(node,parent){
  • if (노드==부모){ 반환 0;} for (var i=0,n=node; n=n.parentNode; i ){ if(n==p){return i;}
  • if(n== document.documentElement){return -1;} //무한 루프를 방지하기 위해 대상 부모 노드를 찾을 수 없습니다.
    }
  • }
  • 반환 함수의 값은 인덱스 번호입니다. 항목 노드가 검색 중인 상위 노드와 동일한 경우(즉, 동일한 요소) 반환 값은 0입니다. 상위 노드를 찾기 위해 위쪽으로 루프를 수행한 후 해당 번호 위쪽으로 검색된 노드 수를 반환하며, 위쪽으로 검색된 경우
    와 같이 전체 페이지의 루트 노드에 도달하거나, 찾지 못한 경우 -1을 반환하고 루프를 종료합니다.

반환값은 String 객체에 내장된 indexOf 메소드와 유사합니다. 이 함수의 핵심은 for의 두 번째 매개변수 n=n.parentNode인데, 이는 기발한 느낌을 줍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.