제목
- 프로젝트 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인데, 이는 기발한 느낌을 줍니다.