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

WBOY
풀어 주다: 2016-05-16 19:03:26
원래의
1685명이 탐색했습니다.

 제목
 

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

    •                                                                     매개변수는 동일하며 사용자가 "프로젝트 x"를 클릭하는지 "하위 카테고리"를 클릭하는지 구분할 수 있습니다. 수직 위치(노드 깊이)로 구분할 수 있습니다. 예를 들어 문서에서 노드 깊이는 "
      의 Project One"은 2이고, "Subcategory One"의 노드 깊이는 4입니다.
    • 은 제외 후 노드 깊이를 계산합니다. 재귀적 방법 이후에 더 간단한 방법을 찾았습니다:
    • function parentIndexOf(node,parent){
      if(node==parent){return 0;}
    • for (var i= 0,n=node; n=n.parentNode; i ){ if(n==parent){return i;} if(n==document.documentElement){return -1;} // 무한 루프를 방지하기 위해 대상 부모 노드를 찾을 수 없습니다
    • }
      }
    함수의 반환값은 인덱스 번호입니다. 항목 노드가 검색 중인 상위 노드와 동일한 경우(즉, 동일한 요소) 반환값은 0입니다. 상향 루프가 찾은 후 상위 노드인 경우 위쪽으로 검색한 노드 수를 반환하고
    과 같이 전체 페이지의 루트 노드에 도달하고 찾을 수 없는 경우 -1을 반환하고 루프를 종료합니다.
  • 반환값은 String 객체에 내장된 indexOf 메소드와 유사합니다. 이 함수의 핵심은 for의 두 번째 매개변수 n=n.parentNode인데, 이는 기발한 느낌을 줍니다.
관련 라벨:
js
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿